home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 June: Reference Library / Dev.CD Jun 94.toast / Technical Documentation / Developer Notes / Peripherals / QuickTake100Digital Camera / QuickTake100Digital Camera
Encoding:
Text File  |  1994-04-27  |  1.3 MB  |  3,103 lines  |  [ONLN/HLX2]

Text Truncated. Only the first 1MB is shown below. Download the file for the complete contents.
  1. Developer NoteQuickTake 100 Digital Camera    Apple Computer, Inc.© 1994 Apple Computer, Inc.All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, mechanical, electronic, photocopying, recording, or otherwise, without prior written permission of Apple Computer, Inc.The Apple logo is a trademark of Apple Computer, Inc. Use of the “keyboard” Apple logo (Option-Shift-K) for commercial purposes without the prior written consent of Apple may constitute trademark infringement and unfair competition in violation of federal and state laws.No licenses, express or implied, are granted with respect to any of the technology described in this book. Apple retains all intellectual property rights associated with the technology described in this book. This book is intended to assist application developers to develop applications only for Apple Macintosh computers.Apple Computer, Inc.20525 Mariani AvenueCupertino, CA 95014408-996-1010Apple, the Apple logo, APDA, AppleLink, ColorSync, GeoPort, LaserWriter, Macintosh, QuickDraw, QuickTake, QuickTime, and System 7 are trademarks of Apple Computer, Inc., registered in the United States and other countries.Adobe Illustrator, PostScript are trademarks of Adobe Systems Incorporated, which may be registered in certain jurisdictions.CompuServe is a registered trademark of CompuServe, Inc.America Online is a service mark of Quantum Computer Services, Inc.FrameMaker is a registered trademark of Frame Technology Corporation.Helvetica and Palatino are registered trademarks of Linotype Company.Internet is a trademark of Digital Equipment Corporation.ITC Zapf Dingbats is a registered trademark of International Typeface Corporation.Microsoft Windows is a registered trademark of Microsoft Corporation.NuBus ia a trademark of Texas Instruments.Simultaneously published in the United States and Canada.Even though Apple has reviewed this manual, APPLE MAKES NO WARRANTY OR REPRESENTATION, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THIS MANUAL, ITS QUALITY, ACCURACY, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE. AS A RESULT, THIS MANUAL IS SOLD “AS IS,” AND YOU, THE PURCHASER, ARE ASSUMING THE ENTIRE RISK AS TO ITS QUALITY AND ACCURACY.IN NO EVENT WILL APPLE BE LIABLE FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES RESULTING FROM ANY DEFECT OR INACCURACY IN THIS MANUAL, even if advised of the possibility of such damages.THE WARRANTY AND REMEDIES SET FORTH ABOVE ARE EXCLUSIVE AND IN LIEU OF ALL OTHERS, ORAL OR WRITTEN, EXPRESS OR IMPLIED. No Apple dealer, agent, or employee is authorized to make any modification, extension, or addition to this warranty.Some states do not allow the exclusion or limitation of implied warranties or liability for incidental or consequential damages, so the above limitation or exclusion may not apply to you. This warranty gives you specific legal rights, and you may also have other rights which vary from state to state.ContentsFigures, Tables, and ListingsviiPreface    About This NoteixContents of This NotexSupplementary DocumentsxFor More InformationxiTypographical ConventionsxiiChapter 1    Introduction to the QuickTake 100 Camera1-1QuickTake 100 Overview1-2QuickTake 100 Developer Software1-3Macintosh1-3Windows1-4QuickTake 100 Features1-4User Controls1-4Power On and Off1-4Flash Button1-5Erase-All Button1-6Timer Button1-6Resolution Button1-6Shutter Button1-6LCD Display1-7Battery-Power Icon1-7Pictures-Taken Indicator1-7Pictures-Available Indicator1-7Chapter 2    QuickTake 100 Driver Software2-1QuickTake 100 Device Driver Overview2-2Using the QuickTake 100 Driver Software2-3Initializing the QuickTake 100 Device Driver2-3Establishing a Connection With the Camera2-3Capturing and Retrieving Images2-4Closing the Camera Connection2-4Closing the QuickTake 100 Device Driver2-5Sample Code for Retrieving an Image From the Camera2-5Asynchronous Operations2-7QuickTake 100 Device Driver Reference2-8Data Types for the QuickTake 100 Device Driver Functions2-8QuickTake 100 Device Driver Functions2-19Initializing and Closing the QuickTake 100 Device Driver2-20Connecting With the Camera2-22Controlling the Camera2-28Retrieving and Capturing Images2-54C-Language Summary of the QuickTake 100 Device Driver2-64Constants2-64Data Types2-65Functions 2-68Result Codes2-71Chapter 3    QuickTake 100 Images3-1QuickTake 100 Image Sizes3-2Image Color Depth3-3Chapter 4    Displaying QuickTake 100 Images in a Windows     Application4-1Using the Windows IPM4-2IPM Error Handling4-4Image Processing Module Reference4-4Data Types for the Windows IPM Functions4-4IPM Functions for Microsoft Windows Applications4-7C-Language Summary of the Image Processing Module4-21Constants4-21Data Types4-21Functions4-22Result Codes4-24Chapter 5    Displaying QuickTake 100 Images in a Macintosh     Application5-1QuickTake 100 QuickTime Decompressor5-2Appendix A    QuickTake 100 Serial InterfaceA-1Serial PortA-1Protocol, Transfer Rate, and Data FormatA-2QuickTake 100 Serial Port Pin AssignmentsA-2Serial CablesA-3Appendix B    QuickTake 100 Camera SpecificationsB-1Figures, Tables, and ListingsChapter 1    Introduction to the QuickTake 100 Camera1-1Figure 1-1    QuickTake 100 lens cover in the open position1-5Figure 1-2    QuickTake 100 LCD display and user control buttons 1-5Figure 1-3    Rear view of the QuickTake 100 camera1-7Chapter 2    QuickTake 100 Driver Software2-1Table 2-1    CmSetSleep sleepDelay parameter values2-44Table 2-2    QuickTake 100 driver error category codes, mnemonics, and definitions2-49Table 2-3    QuickTake 100 device driver error detail codes, mnemonics, and definitions 2-50Listing 2-1    Using the device driver functions to retrieve an image from the QuickTake 100 camera2-5Chapter 3    QuickTake 100 Images3-1Table 3-1    Memory sizes of supported QuickTake 100 image formats in bytes3-3Table 3-2    Picture display formats and color resolutions3-3Chapter 4    Displaying QuickTake 100 Images in a Windows Application4-1Table 4-1    Memory and image band processing4-4Table 4-2    Default CRT display characteristics4-15Table 4-3    Default CRT display gamma characteristic4-15Appendix A    QuickTake 100 Serial InterfaceA-1Figure A-1    QuickTake 100 serial port locationA-1Figure A-2    QuickTake 100 serial port physical patternA-1Figure A-3    QuickTake 100-to-Macintosh serial cableA-3Figure A-4    QuickTake 100-to-Macintosh serial cable pin assignmentsA-3Figure A-5    QuickTake 100-to-Macintosh twisted-pair cable configurationA-4Figure A-6    QuickTake 100 8-pin mini-DIN to RS-232C serial cable and adapterA-4Figure A-7    QuickTake 100 8-pin mini-DIN to D-sub 9-pin RS-232C serial cable pin assignmentsA-5Figure A-8    D-sub 9-pin physical pinout on a QuickTake 100 to D-sub 9-pin serial cableA-5Figure A-9    D-sub 9-pin physical pinout on a D-sub 9-pin to D-sub 25-pin adapter cableA-6Figure A-10    D-sub 25-pin physical pinout on a D-sub 9-pin to D-sub 25-pin adapter cableA-6Table A-1    Serial port pin assignmentsA-2Appendix B    QuickTake 100 Camera SpecificationsB-1Table B-1    Venus specificationsB-2About This NoteThis developer note defines the QuickTake 100 software components provided for developers creating applications for either Apple Macintosh computers or computers capable of running Microsoft Windows. The QuickTake 100 software components are in the form of two application programming interfaces (APIs)—a QuickTake 100 camera device driver and an Image Processing Module (IPM). The device driver software provides control services for QuickTake 100 digital computer camera. The camera control software is provided as a device driver and associated glue files for Macintosh computers and as a driver dynamic link library (DLL) for Microsoft Windows. The function names used for the QuickTake 100 driver interface and the QuickTake 100 DLL interface are identical for both the Macintosh and Windows platforms. The APIs for the IPM strictly apply to the Windows platform. QuickTake 100 image processing software decompresses the image data that makes up a QuickTake 100 digital image once that data is present on the host computer. Image processing is performed by a QuickTime decompressor component on the Macintosh computer and by a QuickTake 100 IPM dynamic link library for Microsoft Windows applications. This note assumes that you are already familiar with the hardware and software technology of Macintosh computers and computers capable of running Microsoft Windows software. If you are unfamiliar with Macintosh software and hardware, you may want to obtain copies of the related technical manuals listed in “Supplementary Documents,” later in this preface. While every attempt has been made to verify the accuracy of the information presented, it is subject to change without notice. This developer note may contain information or specifications that are still under consideration by Apple Computer. The primary reason for releasing preliminary product information is to provide the developer community with essential product specifications, theory, and application information for the purpose of stimulating work on compatible third-party products. NoteInformation regarding Windows development software for the QuickTake 100 camera is supplied in this note to give developers an idea of the capabilities of the tools that will soon be available for Windows programmers.uContents of This NoteThis developer note is divided into five chapters and three appendixes:Chapter 1, “Introduction to the QuickTake 100 Camera,” gives a summary of the features of the QuickTake 100 digital computer camera. Chapter 2, “QuickTake 100 Driver Software,” provides an overview of the QuickTake 100 device driver software and presents guidelines and some sample code for using the software to control the QuickTake 100. This chapter also describes the device control functions supported by the QuickTake 100 device driver for Macintosh and Windows-compatible computers.Chapter 3, “QuickTake 100 Images,” provides information about the memory required for displaying the various QuickTake 100 image formats supported by the image processing software. It also lists the bit depths for the output formats. Chapter 4, “Displaying QuickTake 100 Images in a Windows Application,” provides a high-level overview of image processing on a Windows-compatible computer. It also describes the Windows IPM DLL functions that support image processing. These functions are used for gathering information about images in the QuickTake 100 and displaying those images on the host computer. Chapter 5, “Displaying QuickTake 100 Images in a Macintosh Application,” provides an overview of the QuickTime decompressor for image processing on the Apple Macintosh computer. Appendix A, “QuickTake 100 Serial Interface,” includes information about the QuickTake 100 serial connector and supported serial protocols. It also provides two diagrams for building serial cables, one to connect a Macintosh computer to a QuickTake 100 camera and another to connect a Windows-compatible computer to a QuickTake 100. Appendix B, “QuickTake 100 Camera Specifications,” lists the technical specifications for the QuickTake 100 camera.An index is also included. Supplementary DocumentsTo supplement the information in this developer note, Macintosh developers should have copies of the appropriate Apple reference manuals. The following documents are essential to Macintosh software development:Technical Introduction to the Macintosh Family, third edition, surveys the complete Macintosh family of computers from the developer’s point of view. Macintosh Human Interface Guidelines provides authoritative information about the theory behind the Macintosh “look and feel” and standard ways of using individual interface components. Inside Macintosh is a collection of books, organized by topic, that describe the system software of Macintosh computers. Together, these books provide a comprehensive reference for Macintosh programmers, software designers, and engineers. The current volume titles areInside Macintosh: OverviewInside Macintosh: Macintosh Toolbox EssentialsInside Macintosh: More Macintosh ToolboxInside Macintosh: FilesInside Macintosh: ProcessesInside Macintosh: MemoryInside Macintosh: Imaging With QuickDrawInside Macintosh: TextInside Macintosh: Interapplication CommunicationInside Macintosh: QuickTimeInside Macintosh: QuickTime ComponentsInside Macintosh: NetworkingDesigning Cards and Drivers for the Macintosh Family, third edition, explains the hardware and software requirements for drivers and NuBus™ ‘90 accessory cards compatible with Macintosh computers. To supplement the information in this developer note, Windows developers should have copies of the appropriate Microsoft Windows programming reference manuals. Microsoft Press is an excellent source for documentation that meets the needs of the Windows developer. For More InformationAPDA is Apple’s worldwide source for over three hundred development tools, technical resources, training products, and information for anyone interested in developing applications on Apple platforms. Customers receive the quarterly APDA Tools Catalog featuring all current versions of Apple development tools and the most popular third-party development tools. Ordering is easy; there are no membership fees, and application forms are not required for most of the products. APDA offers convenient payment and shipping options, including site licensing.To order products or to request a complimentary copy of the APDA Tools Catalog, contact APDA Apple Computer, Inc. P.O. Box 319Buffalo, NY 14207-0319Telephone    800-282-2732 (United States)800-637-0029 (Canada)716-871-6555 (International)    Fax    716-871-6511     AppleLink    APDA    America Online    APDA    CompuServe    76666,2405    Internet    APDA@applelink.apple.com            Typographical ConventionsThis developer note uses typographical conventions that are standard in Apple publications.All code listings and the names of the actual data structures, constants, fields, parameters, and routines are shown in Courier (this is Courier). Hexadecimal numbers are preceded by a dollar sign ($). For example, the hexadecimal equivalent of decimal 16 is written as $10. NoteA note like this contains information that is interesting but not essential for an understanding of the text.u IMPORTANTA note like this contains important information that you should read before proceeding.s Introduction to the QuickTake 100 CameraThis chapter gives a summary of the features of the QuickTake 100 camera. An overview of how to use the features of the QuickTake 100 driver is provided in Chapter 2, “QuickTake 100 Driver Software.” QuickTake 100 OverviewThe QuickTake 100 is a portable, fully automatic, hand-held digital computer camera. It stores compressed 24-bit color still images in internal memory. Images are captured using the same process used to take pictures with any hand-held camera—aim at your subject and press a button to open the shutter and take a picture. The internal memory in the camera acts like a roll of film that stores the images by number. In addition to manual control, the QuickTake 100 can also be controlled over a serial cable by a host computer using the software described in this developer note. The QuickTake 100 provides a simple solution for capturing and transferring digital images to a host computer. Using a serial interface, images captured in the camera can be retrieved by the host computer without the need of an intermediary digitizing device, such as a scanner or frame-capturing video card. The QuickTake 100 serial port is described in Appendix A, “QuickTake 100 Serial Interface.” QuickTake 100 images are captured in two user-defined pixel resolutions—640 by 480 and 320 by 240. Images with 640 by 480 pixels are referred to as high-resolution images. Images with 320 by 240 pixels are referred to as standard-resolution images. The QuickTake 100 camera has a 1 MB memory area for image storage and can store a total of 32 standard-resolution images, 8 high-resolution images, or a combination of the two. In addition, a thumbnail image is stored with each image captured. A thumbnail image has a pixel resolution of 80 by 60. Thumbnail images are useful for previewing the contents of an image file. The images are stored in the camera in a compressed format that cannot be readily used by the host computer. QuickTake 100 images must be retrieved from the camera with the QuickTake 100 driver DLL functions and then decompressed with the Image Processing Module (IPM) functions prior to displaying them within an application window. On the Macintosh computer the IPM functions are incorporated into a QuickTake 100 QuickTime decompressor. Programs written for the Macintosh use the decompressor to decompress the compressed raw QuickTake 100 image data so that the image can be displayed on the Macintosh computer. Standard QuickTime compressor calls are used for the decompression and display process. A Windows DLL provides the IPM for Microsoft Windows. Windows programs use the functions described in Chapter 4, “Displaying QuickTake 100 Images in a Windows Application,” to decompress and display the QuickTake 100 raw image data in an appropriate display format. For a discussion of what your application needs to do to interact with the QuickTake 100 camera, see “Using the QuickTake 100 Driver Software” beginning on page 2-3. QuickTake 100 Developer SoftwareThe QuickTake 100 developer software is available for both Macintosh computers and Microsoft Windows compatible computers. The hardware and software required for developing QuickTake 100 applications on Macintosh and Windows platforms is listed in this section.MacintoshThe QuickTake 100 driver and image processing software work with the following Apple Macintosh computer configurations: n    computers with a Motorola 68020 or greater CPUn    System 7.0.1• Tune-Up or a later version of system softwaren    5 MB of RAM The QuickTake Image QuickTime decompressor and the QuickTake 100 glue code and header files (CmDriver.c, CmDriver.h, and GeoPortErrors.h) are required to develop software that can recognize and can display QuickTake 100 images that have been saved on the Macintosh computer in the QuickTake 100 image format. In addition to the QuickTake Image QuickTime decompressor system extension, the following software components, which must be installed using the Installer software on the QuickTake 100 disk set, are needed to develop software for connecting to the QuickTake 100 camera, taking pictures, retrieving pictures, and setting various operational paramaters of the camera: n    ColorSync version 1.0.3 and ColorSync Profiles—a control panel (provides screen chromaticity values)n    Foreign File Access—system extensionn    GeoPortSerialDriver 1.0—a system extension (Shared Library Manager module)n    Network and associated Network Resources file—control paneln    QuickTake Access—system extension (Foreign File Access module)n    QuickTake Camera device driver—a system extensionn    QuickTime version 1.6.1—a system extensionn    Serial Extension—a system extension (Shared Library Manager module)n    Serial Switch version 1.1—for the Macintosh IIfx, Macintosh Quadra 900, and Macintosh Quadra 950 computersn    Shared Library Manager version 1.1.1 and associated Library Manager Resources fileThe following application software is also on the disks that accompany the QuickTake 100 camera: n    QuickTake version 1.0—an application that provides an interface for connecting to the QuickTake 100 camera, taking pictures, retrieving pictures, saving pictures in several file formats, and setting operational paramaters of the cameran    QuickTake Setup—a control panel for mounting the camera on the desktopWindowsThe QuickTake 100 driver DLL and image processing DLL software work with the following Microsoft Windows configurations: n    Windows 3.1 or latern    Intel i80386, i80486, or greater CPU n    4 MB of RAM The following software components are required to create Windows-compatible applications for the QuickTake 100 camera:n    QuickTake 100 driver DLL and header file (QTAKE-D.DLL and QTAKE-D.H)n    QuickTake 100 IPM DLL and header file (QTAKE-I.DLL and QTAKE-I.H)QuickTake 100 FeaturesThe QuickTake 100 camera has many features that are easily controlled by the user. It also has an LCD display that provides visual feedback about various internal conditions. User ControlsThe QuickTake 100 camera has these user controls: n    power on and offn    flash buttonn    erase-all buttonn    timer buttonn    resolution buttonn    shutter buttonThese controls are described in the following sections.Power On and OffPower is on when the lens cover on the front of the camera is slid to one side, exposing the lens. Figure 1-1 shows the lens cover in the open position. At power-on time, the LCD display, shown in Figure 1-2, becomes active, and the flash is set to automatic. If the green light is on in the view finder, the camera is ready to take a picture. Figure 1-1    QuickTake 100 lens cover in the open positionTo turn the power off, close the lens cover. The picture resolution, number of pictures taken, and number of pictures available settings are stored after the power is turned off. Other settings return to the default values.Figure 1-2    QuickTake 100 LCD display and user control buttons Flash ButtonA flash button toggles three flash settings—automatic flash, flash on, and flash off. Automatic FlashWhen power is on, the flash is set to automatic. When automatic flash is set, the QuickTake 100 camera determines when the flash is used according to the current light conditions. A green light in the view finder indicates the flash is fully powered and the camera is ready to take a picture. Flash OnIf the flash button is pressed while automatic flash is active, the flash-on setting becomes active. In the flash-on setting, the QuickTake 100 camera always uses the flash when a picture is taken. A green light in the view finder indicates the flash is fully powered and the camera is ready to take a picture.Flash OffIf the flash button is pressed while flash on is active, the flash-off setting becomes active. In the flash-off setting, the QuickTake 100 camera does not use the flash. If the flash button is pressed while flash off is active, the automatic-flash setting becomes active. Erase-All ButtonWhen the recessed erase-all button is pressed, all of the images currently stored in the camera are erased. During the period of time that it takes for the images to be erased, the erase-all icon on the LCD display flashes. After the images are erased, the pictures-available indicator displays the number of available pictures for the current resolution setting and the pictures-taken indicator indicates zero pictures have been taken. Timer ButtonThe timer button allows you to initiate a 10-second time delay before a picture is taken. Pressing the shutter button after the timer button is pressed causes a 10-second count to elapse before the shutter is actually opened. An indicator light on the top of the camera is on for 8 seconds and then flashes rapidly for 2 seconds prior to the shutter opening to take the picture. While the camera is in a timer sequence, no other features can be reset. You can’t cancel a timed picture sequence after the shutter button has been pressed by pressing the timer button a second time. Resolution ButtonThe resolution button toggles between high-resolution and standard-resolution picture modes. The maximum number of pictures that can be taken is 8 in high-resolution mode and 32 in standard-resolution mode. (It takes more memory to hold more pixel data, so fewer pictures are available in high-resolution mode.)The resolution setting also affects two indicators on the LCD display—the resolution icon and the pictures-available indicator. The effects that are particular to the display during different resolution settings are described in “LCD Display,” later in this chapter. Shutter ButtonThe shutter button controls when a picture is taken. If the shutter button is pressed and the timer button has not been previously pressed, a picture is taken immediately. If the timer button has been pressed, a 10-second delay occurs prior to a picture being taken. When a picture is taken, the pictures-taken indicator on the LCD display increments by 1. The shutter button is disabled when there are zero pictures available in both high-resolution and standard-resolution picture modes. LCD DisplayThe QuickTake 100 has an LCD display on the back of the camera to the right of the viewfinder, as shown in Figure 1-3. Figure 1-3    Rear view of the QuickTake 100 cameraThe LCD display provides information about the battery-power level, number of pictures taken, number of pictures still available, current picture-resolution mode, current flash setting, timer setting, and an erase-all pictures indicator. Icons or numbers on the display provide a visual representation for each of these conditions. The LCD display is activated when the QuickTake 100 camera is on. Battery-Power IconThe display indicates the current battery-power level with an icon of a battery. The icon indicates three conditions. A battery icon filled with black indicates a fully charged battery. A battery icon with only the right half filled with black indicates that the battery charge has dropped and the battery may need to be charged again soon. The battery icon flashes on and off to indicate that the battery needs to be charged immediately. Pictures-Taken IndicatorThe pictures-taken indicator is in the middle of the display. The count is incremented each time a picture is taken starting from 0 to the number of pictures taken. Pictures-Available IndicatorThe pictures-available indicator displays the number of pictures that remain to be taken in the current picture-resolution mode. This value decrements from 8 in high-resolution mode and decrements from 32 in standard-resolution mode. The pictures-available indicator is located next to the resolution icon on the LCD display. If the resolution button is pressed when the QuickTake 100 camera is in the standard-resolution mode, the resolution mode changes to high resolution and the pictures-available indicator changes to indicate the current number of pictures that are available in high-resolution mode. The number decreases because high-resolution pictures consume larger amounts of image memory than standard-resolution pictures. If the resolution button is pressed while the QuickTake 100 camera is in the high-resolution mode, the resolution mode changes to standard resolution and the pictures-available indicator changes to indicate the total number of pictures available in the standard-resolution mode. The number increases because standard-resolution pictures consume smaller amounts of image memory than high-resolution pictures. If a picture is taken when the picture resolution setting is high resolution and the total number of pictures available indicates one picture, the pictures-available indicator displays 0 for one second. After one second elapses, the resolution setting is changed to standard resolution and the appropriate number of pictures available for standard resolution is indicated. If the resolution button is pressed at this point, the resolution changes back to high resolution and the number of pictures available changes to 0 for one second. After one second elapses, the resolution once again changes to standard and the appropriate number of pictures available in the standard-resolution mode is displayed. QuickTake 100 Driver SoftwareThis chapter presents an architectural overview of the QuickTake 100 driver software, provides basic guidelines for programming applications to control the QuickTake 100 camera and retrieve images stored in the camera memory, describes the driver functions, and includes a sample code listing that shows how you could use the driver functions in a Macintosh application to retrieve an image from the QuickTake 100 camera. QuickTake 100 Device Driver OverviewThe QuickTake 100 device driver includes a library of functions that are designed to facilitate control of the QuickTake 100 camera for taking pictures and retrieving picture images stored in the QuickTake 100 camera. This library of functions effectively hides the device-specific details that are otherwise required to enable an application to perform the tasks. The functions in the library can be categorized as follows:n    Driver initialization functions. The functions in this category allocate and deallocate data structures used by the QuickTake 100 device driver.n    Camera connection functions. The functions in this category are used to identify and connect to a camera.n    Camera control functions. The functions in this group are used to retrieve, set, or control various characteristics of the QuickTake 100 camera, for example, to retrieve information about a particular picture in the camera, to set the flash mode, or to erase the pictures stored in the camera. n    Image retrieval and capture functions. The functions in this group are used to retrieve images and take pictures. For the Windows platform, the driver is provided in the form of a dynamic link library (DLL). For the Macintosh platform, the device driver is provided in the form of a QuickTake 100 system extension.All QuickTake 100 driver functions return a result code to notify the caller that the function has successfully completed or to provide a reason if the function is not successful. A result code of 0 (zero) always indicates successful completion. The include file CmDriver.h defines the constants for each error status. Errors also appear in the “Result Codes” section for each function description. If the value returned by a function indicates an error and if the error was detected by the camera, then further information is available through a call to the CmGetErrorInfo function. For information about errors detected by the camera, see the CmGetErrorInfo function described on page 2-48. Using the QuickTake 100 Driver SoftwareTo interact with the QuickTake 100 camera, applications must perform these steps:    1.    Open the QuickTake 100 device driver.    2.    Establish a connection.    3.    Retrieve or capture images.    4.    Close the connection.    5.    Close the QuickTake 100 device driver.Initializing the QuickTake 100 Device DriverYour application must first initialize the QuickTake 100 device driver by making a call to the CmOpenDriver function. CmOpenDriver allocates and initializes internal structures required by the driver to successfully perform any operations requested by subsequent calls. On the Macintosh platform, CmOpenDriver also initializes and opens the QuickTake 100 driver. The CmOpenDriver function is described on page 2-20. Establishing a Connection With the CameraAfter initializing the QuickTake 100 device driver, your application must identify the camera to be controlled before making a connection to it. This is performed by calling the CmGetPortInfo function to determine whether a camera is attached to the host. If a camera is attached to the host, then call CmConnect to make a connection with that camera. The CmGetPortInfo function returns a CmPortInfo data structure that contains, among other things, information about the current status and availability of a camera attached to the specified serial port. After you determine that a serial port has a camera attached to it and that the camera is available, you then call the CmConnect function with a handle to the CmPortInfo structure for the camera. If more than one camera is attached, you should provide a dialog box that asks the user which camera he or she would like to connect with. The CmConnect function establishes a connection with the camera specified in CmPortInfo. CmConnect and CmPortInfo should be called once for each communication session with a QuickTake 100 camera. See the descriptions of the CmGetPortInfo function on page 2-22, the CmConnect function on page 2-25, and the CmDisconnect function on page 2-27 for additional information about connecting to a QuickTake 100 camera. See the description of CmPortInfo on page 2-10. IMPORTANTIMPORTANTAlthough an application may call CmGetPortInfo successively on as many serial ports as there are available on the host computer, the driver can interact with only one QuickTake 100 camera at a time.sCapturing and Retrieving ImagesAfter the driver is initialized and the connection is made with the QuickTake 100 camera, the application can interact with camera to perform the following tasks: n    Get the current status of the camera by calling the CmGetCameraInfo function. The status information returned by this function includes the number of pictures that have been taken, the number of pictures that can be taken, camera battery status, and so on. Refer to the description of the CmGetCameraInfo function on page 2-28. n    Get information related to a particular image in the camera by calling the CmGetPictureInfo function. The information returned by this function includes the size, in bytes, of the image corresponding to the picture; the image width and height, in pixels; the date and time the picture was taken; and so on. n    Retrieve the image by issuing CmGetThumbnailImage (for the thumbnail version) or CmGetFullSizeImage (for either the standard-resolution or high-resolution version). n    Capture an image by calling CmTakePicture, optionally preceded by calls to such functions as CmSetFlashMode, CmSetPictureMode, and possibly CmErase. For more information, see the descriptions of CmGetCameraInfo on page 2-28, CmGetPictureInfo on page 2-29, CmGetThumbnailImage on page 2-54, CmGetFullSizeImage on page 2-57, CmSetFlashMode on page 2-42, CmSetPictureMode on page 2-41, and CmErase on page 2-31. Closing the Camera ConnectionAfter your application has finished interacting with the camera, it must declare its intention to end the session with the camera by calling CmDisconnect and CmDisposePortInfo. Since the CmConnect function establishes an implicit connection with a camera within which the driver functions work, your application must first end any current connection before it is able to establish a connection and interact with other cameras, if any, connected to the host computer. After your application has closed the current camera connection, it may open a new connection with the same camera or other cameras connected to the host as described in “Establishing a Connection With the Camera,” earlier in this chapter. For more information, see the descriptions of CmDisconnect on page 2-27 and CmConnect on page 2-25. Closing the QuickTake 100 Device DriverAfter your application has finished whatever it had to do with the QuickTake 100 device driver and disconnected from any camera with which it was interacting , it must call the function CmCloseDriver. This function frees the internal structures used by the driver. On the Macintosh platform, CmCloseDriver closes the camera driver.For more information, see the description of CmCloseDriver on page 2-21. Sample Code for Retrieving an Image From the CameraListing 2-1, for the Macintosh computer, shows a function called GetImage that uses the QuickTake 100 device driver functions to retrieve an image from the QuickTake 100 camera. Listing 2-1    Using the device driver functions to retrieve an image from the QuickTake 100 camera#include "CmDriver.h"#define kGenericErr -1OSErr GetImage(unsigned short imageNumber, Handle *imageBuffer,         unsigned long *imageSize){    OSErr err;    CameraData         camData;    CmPortInfoHandle         portInfoHandle;    unsigned long         portIndex;    CmPictureInfo         *pictureInfo;    Boolean         firstRead;    unsigned long         actualBytes;/* Open the QuickTake 100 camera driver with CmOpenDriver. */    err = CmOpenDriver(&camData);        if (err != noErr || camData == NULL)             return err;/* Use CmGetPortInfo to find a QuickTake 100 camera on a serial port. */    portIndex = 1;    foundCamera = false;    while( (err != kNoPortErr) && (!foundCamera) ){        portInfoHandle = NULL;        err = CmGetPortInfo(camData, portIndex, &portInfoHandle);            if (err != noErr || portInfoHandle == NULL)                return err;        portIndex++;        if ((**portInfoHandle).portStatus == kGeoPortFree)            foundCamera = true;        else        {            err = CmDisposePortInfo(camData, portInfoHandle);                if (err != noErr)                    return err;        }    }    if (!foundCamera)        return kGenericErr;/* Use CmConnect to connect to the camera that was found with the CmGetPortInfo function.*/    err = CmConnect(camData, portInfoHandle);    if (err != noErr)        return err;/* Get the image info with the CmGetPictureInfo function and fill in the picture information. */    pictureInfo = (CmPictureInfo *)NewPtr(sizeof(CmPictureInfo));    err = MemError();    if (err != noErr)        return err;    err = CmGetPictureInfo(camData, imageNumber, pictureInfo);    if (err != noErr)        return err;/* Allocate the memory for the image. */    *imageSize = pictureInfo->imageDataSize;    *imageBuffer = NewHandle(*imageSize);    err = MemError();    if (err != noErr)        return err;/* Retrieve the image from QuickTake 100 with the CmGetFullSizeImage function. */    MoveHHi(*imageBuffer);    HLock(*imageBuffer);    firstRead = true;    err = CmGetFullSizeImage(camData, imageNumber,                 (unsigned char *)**imageBuffer,                *imageSize, firstRead, &actualBytes);    HUnlock(*imageBuffer);    if (err != noErr)        return err;/* End your connection with the camera. */    err = CmDisconnect(camData);    if (err != noErr)        return err;/* Dispose of the camera port info structure. */    err = CmDisposePortInfo(camData, portInfoHandle);    if (err != noErr)        return err;/* Close the driver. */    err = CmCloseDriver(camData);    if (err != noErr)        return err;    return noErr;}Asynchronous OperationsOn the Windows platform, each of the functions CmTakePicture, CmGetThumbnailImage, CmGetFullSizeImage, and CmErase has an asynchronous counterpart whose name is derived by appending the word Async at the end of the function name (for example, CmTakePictureAsync). On the Macintosh platform, the functions CmErase and CmTakePicture have asynchronous counterparts. The goal of the asynchronous set of functions is to allow applications to have a separate thread of execution when performing these functions with the QuickTake 100 camera. The asynchronous functions allow the user to perform other operations, such as typing or editing text, during the time in which a picture is being transferred from the camera to the host computer. The means by which the different threads synchronize their execution is supplied by your application in the form of a completion routine for each of the asynchronous functions. The completion routine CmAsyncCompletionRoutine is shown here: typedef void (CallbackProc)(void);typedef CallballProc* CmAsyncCompletionRoutinePtr;For a complete description of how to use the application-defined completion routine, see the definition on page 2-33. Although the asynchronous functions do provide a means by which an application can receive progress information from an operation asynchronously, neither Windows nor the Macintosh Finder acts as a preemptive multitasking architecture. It is still the responsibility of the application to implement the callback routines within the confines of the respective operating-system environment. NoteThe asynchronous functions CmGetThumbnailImageAsync and CmGetFullSizeImageAsync are not available on the Macintosh platform.u NoteAll of the asynchronous functions CmGetThumbnailImageAsync, CmGetFullSizeImageAsync, CmTakePictureAsync, CmEraseAsync, and CmCancelAsyncOperation are supported by the Windows QuickTake 100 DLL. CmTakePictureAsync and CmEraseAsync are the only asynchronous functions supported on the Macintosh platform.u QuickTake 100 Device Driver ReferenceThe device driver reference defines all of the data types and functions supported by the QuickTake 100 device driver. Data Types for the QuickTake 100 Device Driver FunctionsThis section describes all of the data types referenced by the QuickTake 100 device driver functions. The definitions are found in the CmDriver.h file for Macintosh programs and in the QTAKE-D.H file for Windows programs. CameraDataThe CameraData data type is native to the Macintosh programming environment and defined as typedef CmCameraData* CameraData; For the Windows environment it is defined astypedef unsigned short CameraData; All QuickTake 100 device driver functions require a data item of this type as their first parameter, except CmOpenDriver, which expects the address of a data item of this type. For Windows, the parameter must be the handle of the application program (the variable that Windows gives to your application as the first parameter to WinMain). WinMain and other items specifically referenced by Windows application programs are described in the documentation that accompanies the software programming environment with which Windows applications are created. For the Macintosh computer, this parameter must be the pointer whose address is handed to CmOpenDriver. BufferPtrThe BufferPtr data type is a pointer to an address containing information to be used by a function or an address used to receive information returned by a function. For the Macintosh platform BufferPtr is defined astypedef unsigned char* BufferPtr;For the Windows platform BufferPtr is defined astypedef unsigned char far* BufferPtr;NoteWindows applications should not use the BufferPtr type as it is defined here when making a call to the CmGetFullSizeImage function, described on page 2-57, if the buffer required for the image is greater than 64KB. Instead, use type coercion to change the BufferPtr type of the imageBuffer parameter to unsigned char huge*. u SEE ALSOCmGetThumbnailImage on page 2-54, CmGetThumbnailImageAsync on page 2-56, CmGetFullSizeImage on page 2-57, CmGetFullSizeImageAsync on page 2-60, CmSetOwnerName on page 2-40, and CmGetDecompTable on page 2-45.CmStdFeaturesThe CmStdFeatures structure provides information about the version of the Macintosh QuickTake 100 driver or Windows DLL. typedef struct {    short version;} CmStdFeatures, *CmStdFeaturesPtr;Field descriptionsversion    Macintosh: The version number of the QuickTake 100 driverWindows: The current version of the DLL SEE ALSOCmGetStdFeatures on page 2-35 CmPortInfoThe CmPortInfo structure contains information about a QuickTake 100 camera that is attached to a host serial port. When you make a call to the CmConnect function to establish a connection with a QuickTake 100 camera, you pass the CmPortInfo structure for the port and camera with which you want to connect. You retrieve the CmPortInfo structure for a specified serial port with the CmGetPortInfo function. typedef struct {    Handle                    portIcon;    StringHandle                      portName;    unsigned long                     portStatus;    StringHandle   appName;    unsigned char  familyID;    unsigned char  deviceID;    unsigned short beaconParam;    Handle                     portConfig;    unsigned long                    DataSpeed;} CmPortInfo, *CmPortInfoPtr, **CmPortInforHandle;Field descriptionsField descriptionsportIcon    Handle of the icon representing this port. portName    Operating-system-specific name of this port. On the Macintosh it is a handle to a length-prefixed Pascal-style string. On the Windows platform it is a null-terminated C string. portStatus    The portStatus field contains one of these symbolic constants indicating the status of the port:kGeoPortFree    A GeoPort device is attached on this port and is ready to process commands from the host.kPortFree        A QuickTake 100 camera is attached on this port and is ready to process commands from the host.kInUseByGeoPort    A GeoPort aware application is using the serial port. The family ID, device ID, and beacon parameter will be returned in the familyID, deviceID, and beaconParam fields respectively. kInUseBySerial    Another serial application is using the serial port. kInUseByUnknown    Another serial application is using the serial port. kInUseByLocalTalk    The LocalTalk driver is using the serial port. appName    Null. familyID    The GeoPort family identification for digital image devices. When a QuickTake 100 camera is attached, this field contains the value 1 and has the constant name kCmFamilyID. deviceID    The GeoPort device identification for the camera. When a QuickTake 100 camera is attached, this field contains the value 1 and has the constant name kCmDeviceID.beaconParam    The GeoPort beacon parameter of the QuickTake 100 camera. This value is 256.portConfig    Operating system dependent. Reserved. DataSpeed    The data transfer rate in bits per second of this port. Before an actual camera connection is made, the value of this field is 0. After the connection is made, this field contains the appropriate value for the data transfer rate. See the description of the CmGetPortInfo function on page 2-22 and CmConnect function on page 2-25 for more information about data transfer speed. SEE ALSOCmConnect on page 2-25, CmGetPortInfo page 2-22, CmDisposePortInfo on page 2-24 CmProductInfoThe CmProductInfo structure provides product-specific information about the QuickTake 100 camera. typedef struct {    char                             vendorName[8];    char                            productIdentification[16];    unsigned char                            hardwareVersion[2];      unsigned char                            firmwareVersion[2];} CmProductInfo, *CmProductInfoPtr;Field descriptionsvendorName    An 8-byte ASCII string containing the name of the camera vendor. productIdentificationA 16-byte ASCII string containing the product name. hardwareVersion    Hardware version of the camera:Byte 0 contains the major version number.Byte 1 contains the minor version number. firmwareVersion    Firmware version of the camera:Byte 0 contains the major version number.Byte 1 contains the minor version number. SEE ALSOCmGetProductInfo on page 2-37. CmDateAndTimeThe CmDateAndTime structure contains the current date and time of a specified QuickTake 100 camera. typedef struct {    unsigned char                        month;    unsigned char                        day;    unsigned char                        year;    unsigned char                        hour;    unsigned char                        minute;    unsigned char                        second;} CmDateAndTime, *CmDateAndTimePtr;Field descriptionsmonth    Month of the year. Number in the range 1 through 12.day    Day of the month. Number in the range 1 through 31.year    Last two digits in the year of the century. For example, a value of 93 means the year 1993 (can also mean 2093). Number in the range 0 through 99. hour    Hour of the day. Number in the range 0 though 23 (24-hour base; for example, 2:00 P.M. is 14.).minute    Minute of the hour. Number in the range 0 through 59.second    Second of the minute. Number in the range 0 through 59.SEE ALSOCmSetDateAndTime on page 2-39, CmGetCameraInfo on page 2-28, CmGetPictureInfo on page 2-29 CmInterfaceThe CmInterface structure defines the communication parameters for the QuickTake 100 camera attached to a host running Windows. This structure is one of the fields in the CmCameraInfo structure defined on page 2-14. typedef struct {    unsigned char                        transferRate;    unsigned char                        configuration;    unsigned char                        timeOut;} CmInterface;Field descriptionstransferRate    Indicates the data transfer rate between the host and the camera.The transfer rate in bits per second (bps) is calculated by multiplying 1200 by the value of this field. For example, a value of 2 indicates 2400 bps.configuration    Indicates the serial communication settings. It contains 8 bits MSB-LSB as follows: parity (2 bits), stop bits (1 bit), data length (2 bits), unused (3 bits).     Parity     Stop bits    Data length00 = None        0 = 1 bit    10 = 7 bits01 = Odd        1 = 2 bits    11 = 8 bits11 = EvenA value of 11011000 would indicate even parity, 1 stop bit, 8 data bits.timeOut    Indicates the timeout period beyond which the camera decides that the host timed out. The actual timeout period is ten times the returned value (10 x timeOut) milliseconds. A timeOut value of 0 indicates no timeout. This value is implicitly set to 255, which is approximately 2.5 seconds.CmCameraInfoThe CmCameraInfo structure contains detailed information about the specified QuickTake 100 camera and imaging parameters. typedef struct {    unsigned char                        batteryStatus;    unsigned short                        noPicturesTaken;    unsigned short                        noPictureImageAvailable;    unsigned short                        fullImageWidth;    unsigned short                        fullImageHeight;    unsigned short                        thumbnailImageWidth;    unsigned short                        thumbnailImageHeight;    CmDateAndTime                        cameraDateAndTime;    unsigned char                        flashMode;    unsigned short                        exposureTime;    unsigned short                        FNumber;    unsigned char                        pictureMode;    unsigned char                        reserved    unsigned char                        fullImageDatCompMode;    unsigned char                        thumbImageDatCompMode;    unsigned long                        totalMemorySize;    unsigned long                        freeMemorySize;    char                        ownerName[32];    unsigned char                        CCDSensorType;    CmInterface                        hostInterface; /* Windows only */    unsigned char                        cameraInformationBytes[6];    unsigned char                        compDecompParamVersion[4];    unsigned char                        colorMatrixVersion[4];    unsigned char                        spareImageMemoryBlock;    unsigned short                        noBasePicturesTaken;    unsigned short                        noQuarterPicturesTaken;    unsigned char                        sleepDelay;} CmCameraInfo, FarPointer CmCameraInfoPtr;Field descriptionsField descriptionsbatteryStatus    Battery charge and battery icon indicator. Five constants are used to specify the current charge condition of the camera batteries and related condition of the battery icon in the LCD display. The constants have the following values:kPowerAdapter = 140         Adapter is connected to the camera.kBatteryRangeFull = 95 Battery is fully charged; the battery icon in the LCD display is full and the adapter is not connected.kBatteryIconFull = 86Values greater than or equal to 86 show a battery icon in the LCD display that is full; the adapter is not connected.kBatteryIconHalf = 80Values between 85 and 80 indicate that the battery is half charged; the battery icon in the LCD display is half full and the adapter is not connected.kBatteryRangeEmpty = 75Battery has an insufficient charge for camera operation; the battery icon in the LCD display is empty and the adapter is not connected.noPicturesTaken    Number of pictures that have been taken since camera image memory was last cleared. noPictureImageAvailableNumber of pictures that can be taken. This value is based on the current pictureMode setting of the camera.fullImageWidth    Number of pixels in the image width. fullImageHeight    Number of pixels in the image height.thumbnailImageWidth    Number of pixels in the thumbnail image width.thumbnailImageHeightNumber of pixels in the thumbnail image height.cameraDateAndTime    Date and time maintained by the camera. This value can be changed with the CmSetDateAndTime function. See also the CmDateAndTime data structure described on page 2-12.flashMode    The flash mode of the camera. 0 = Automatic flash mode1 = Never use flash2 = Always use flashThe flash mode can be modified with the CmSetFlashMode function described on page 2-42.exposureTime    Indicates the exposure time that would be required to take a picture at the time of a CmGetCameraInfo function call. The value is the inverse of the actual exposure time. That is, exposure time is (1/exposureTime) seconds.FNumber    A function of focal length of the lens of the camera, its diameter, and the shutter speed. 28, 30, 35, 40, 49, 63, 90 and 160 are the possible values for FNumber.pictureMode    Specifies the image size of the picture to be taken. 16 = subsequent pictures will be high-resolution.32 = subsequent pictures will be standard-resolution. This value can be changed with the CmSetPictureMode function described on page 2-41.reserved    Reserved. fullImageDatCompModeMethod employed to compress image data in the camera. Always 1 adaptive differential pulse code modulation (ADPCM).thumbImageDatCompModeMethod employed to compress thumbnail images. Always 3 (4 bits shifted to the right).totalMemorySize    Total size of memory available for picture storage in number of bytes.freeMemorySize    Remaining memory available for picture storage in number of bytes.ownerName    This field contains the identification of the owner of the camera. It is 32-bytes in length. The maximum number of characters in the owner name is 26, pad to 32 bytes with space characters. The owner name is set with the CmSetOwnerName function described on page page 2-40. CCDSensorType    Type of CCD (charged couple device) sensor. 0 = Kodak M7-L1 = Kodak M7hostInterface    Serial communication parameters (only valid for Windows). This field is valid only if the underlying communication device is the standard serial interface. The parameter values are contained in the transferRate, configuration, and timeOut fields in the CmInterface structure described on page 2-13.cameraInformationBytesReserved.compDecompParamVersionThe version number of the set of ADPCM compression parameters employed by the camera. colorMatrixVersion    The version number of the color correction matrix employed by the camera. Bytes 0 and 1 together are the major version number. Bytes 2 and 3 together are the minor version number. See the description of the CmColorMatrix data structure on page 2-19.     Since the color matrix and image compression schemes in the camera may change in the future, it is always important to check the version number of the color matrix. You must make adjustments in your image processing setup, based on the version number of the color matrix in the camera as follows:    On the Windows platform, if the color matrix in the camera is version 1, use the default color matrix in the Windows IPM and pass that matrix back to the IPM for image processing. If it is not version 1, pass the color matrix returned by the camera to the IPM. See Chapter 5, “Displaying QuickTake 100 Images in a Macintosh Application” for more information about displaying images on the Windows platform.     On the Macintosh platform, if the color matrix is not version 1, get the color matrix from the camera, and fill in the color matrix field for the PICT QuickTake file definition passsed to the QuickTake QuickTime decompressor with the camera color matrix. If the version number is 1, process and display the images with the QuickTake decompressor using the same method you use for QuickTime PICT files. See Chapter 5, “Displaying QuickTake 100 Images in a Macintosh Application” for more information about displaying QuickTake images on the Macintosh computer platform.spareImageMemoryBlockNumber of spare image blocks still available.noBasePicturesTaken    Number of high-resolution images that have been taken.noQuarterPicturesTakenNumber of standard-resolution images that have been taken.sleepDelay    Sleep delay time of the camera. A numeric value in the range 0 through 5: 0 = Immediate1 = 5 minutes2 = 15 minutes3 = 30 minutes4 = 60 minutes5 = Never sleepSEE ALSOCmGetCameraInfo on page 2-28, CmSetOwnerName on page 2-40, CmSetPictureMode on page 2-41, CmSetFlashMode on page 2-42, CmSetDateAndTime on page 2-39, IpGetCameraColorMatrix on page 4-16, IpSetCameraColorMatrix on page 4-17, IpInitCameraColorMatrix on page 4-17, IpCalculateColorTables on page 4-9 CmPictureInfoThe CmPictureInfo structure provides details about a specified image stored in the internal memory of the QuickTake 100 camera. Images are specified by picture number in the pictureNo parameter of the CmGetPictureInfo function. typedef struct  {    unsigned short                        pictureNo;    unsigned long                        imageDataSize;    unsigned short                        width;    unsigned short                        height;    CmDateAndTime                        dateAndTime;    unsigned char                        flashMode;    unsigned short                        exposureTime;    unsigned short                        FNumber;    unsigned char                        pictureMode;    unsigned char                        dataCompressionMode;    unsigned char                        defectiveFlag;} CmPictureInfo, *CmPictureInfoPtr;Field descriptionspictureNo    The picture number. This value is the second parameter passed to the CmGetPictureInfo function, which is described on page 2-29. imageDataSize    Size of the image in number of bytes. width    Width of the image in number of pixels. height    Height of the image in number of pixels. dateAndTime    Date and time that the image was captured. flashMode    A value indicating whether or not the flash was used:0 = Flash not used1 = Flash was usedexposureTime    Indicates the exposure time that was required to take the specified picture. Value is (1/exposureTime) seconds. FNumber    The focal length of the lens of the camera, the diameter of the lens, and the shutter speed. pictureMode    Size of the image:16 = High-resolution image 32 = Standard-resolution image dataCompressionMode    Data compression method:1 = ADPCM high- and standard-resolution images3 = Bit shift (4 bits to the right) thumbnail imagesdefectiveFlag    Indicates a defect in the image data:1 = One or more bad blocks of data0 = Image is not corruptedSEE ALSOCmGetPictureInfo on page 2-29 CmColorMatrixThe CmColorMatrix data structure is provided for interface to the Image Processing Module to facilitate decoding of the image format employed by the camera. typedef struct {    unsigned char colorMatrixVersion[4];    double colorCorrectionMatrix[12];} CmColorMatrix,  *CmColorMatrixPtr;Field descriptionscolorMatrixVersion    Version number of the color correction matrix returned in the colorCorrectionMatrix parameter. This is the same value that is returned in the colorMatrixVersion field of the CmCameraInfo data structure. colorCorrectionMatrixThe color correction matrix. See the description of the Characteristics structure on page 4-6. SEE ALSOCmGetColorCorrectionMatrix on page 2-46 QuickTake 100 Device Driver FunctionsThis section defines all of the functions supported by the QuickTake 100 device driver. The QuickTake 100 device driver functions provide Macintosh and Windows application developers with a means to control the QuickTake 100 digital camera, gather image information from the camera, and set any user-definable parameters via software. To use the functions, you must include the CmDriver.h file in the include section of your Macintosh application code or the QTAKE-D.H file for Windows application code. The functions are divided into groups:n    Driver initialization functions. The functions in this category allocate and deallocate data structures used by the device driver. n    Camera connection functions. The functions in this category are used to set up a connection with a camera.n    Camera control functions. The functions in this group are used to retrieve or set various characteristics of the QuickTake 100 camera (for example, the owner name).n    Image retrieval and capture functions. The functions in this group are used to retrieve images from the camera and take pictures. NoteThe numeric error codes provided in the Result Codes section of each function description are applicable to only Macintosh applications. Where errors apply to both Macintosh and Windows software, the symbolic constants are returned to Windows applications.u Initializing and Closing the QuickTake 100 Device DriverThe functions in this category are CmOpenDriver and CmCloseDriver. These functions allocate and deallocate private data structures required by the QuickTake 100 driver. CmOpenDriverpascal OSErr CmOpenDriver(CameraDataPtr cameraData);cameraData    Pointer to the private data allocated and returned by the QuickTake 100 device driver. This pointer must be passed to all the other QuickTake 100 driver functions as the first parameter.     For Windows: the address of a memory location that contains the application ID.     See “CameraData” on page 2-8 for more information about cameraData.DESCRIPTIONThe CmOpenDriver function initializes the driver by allocating and then initializing certain data structures that the driver uses upon subsequent function calls. NoteDuring initialization on the Macintosh platform, application globals are saved via a call to SetCurrentA5. You can retrieve your application globals by subtracting 4 bytes from the parameter block pointed to in the A0 register. This is especially important for subsequent calls to application-defined completion routines during asynchronous operations. For more information about accessing application globals, see the chapter “Memory Management Utilities” in Inside Macintosh: Memory. For information about the completion routine for asynchronous functions, see the CmAsyncCompletionRoutine function described on page 2-33.u IMPORTANTCalling CmOpenDriver after the driver is open without a prior call to CmCloseDriver will result in an error.s RESULT CODESThe CmOpenDriver function returns noErr on success. If an error occurs, it returns one of the values listed here:kCmAlreadyOpenError    -6202    The QuickTake 100 driver is already open. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. Windows platform only.kCmDriverNotLoadedError    -6213    The camera device driver was not loaded at startup time. Macintosh platform only.kCmNoMemoryError    -6209    System failed to allocate memory. kCmSystemError        Windows DLL failed to either register its class or to create a window. kSoftwareInstallErr    -7945    Macintosh GeoPort error: The Shared Library Manager or GeoPort system extensions are missing.memFullErr    -108    Macintosh system error: Not enough memory for requested operation. For the Macintosh, kCmAlreadyOpenError is also returned if another application has already opened the QuickTake 100 driver. SEE ALSOCmCloseDriver, described next CmCloseDriverpascal OSErr CmCloseDriver(CameraData cameraData);cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. DESCRIPTIONThis function frees the internal structures implicitly referenced by the functions.Your application should call CmCloseDriver once when finished with the QuickTake 100 device driver and after it has disconnected from any camera with which it has been interacting.IMPORTANTCalling CmCloseDriver without a previous call to CmOpenDriver will result in a kCmNotOpenError error. A call to CmCloseDriver made prior to a call to CmDisconnect will not close the connection with the camera. Call CmDisconnect before CmCloseDriver to fully disconnect and close an open session with a camera. s RESULT CODESThe CmCloseDriver function returns noErr upon successful completion. On error, the value returned by this function can be one of the following:kCmAIPError    -6201    An asynchronous operation is already in progress. Macintosh platform only.kCmBadArgError    -6203    Parameter is or contains an address of an invalid data item.kCmCurrentlyConnectedError    -6205    The camera is connected and needs to be disconnected with CmDisconnect before calling CmCloseDriver.kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized.SEE ALSOCmOpenDriver on page 2-20 Connecting With the CameraThe functions CmGetPortInfo, CmDisposePortInfo, CmConnect, and CmDisconnect are used to identify and connect to a camera so that the camera control functions described later in this chapter can be used. CmGetPortInfopascal OSErr CmGetPortInfo(CameraData cameraData,                            unsigned long index,                            CmPortInfoHandlePtr portInfoHandle); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. index    Index number of a serial port:Macintosh:         1 = Modem port        2 = Printer portWindows:        1 through 9 for Comm 1 through Comm 9, respectivelyportInfoHandleAddress of a memory location into which the handle of a CmPortInfo data structure is to be stored. DESCRIPTIONCmGetPortInfo determines the presence and the availability of a camera at the end of a serial port on the host computer. The driver defines each serial communication port with a number. The number is supplied to this function as the index parameter and is used by CmGetPortInfo to index into the array of serial ports available on the host computer. The output of this function is a handle to the CmPortInfo data structure that contains, among other things, information as to whether the communication port corresponding to the given index number has a camera attached and, if it has, whether the attached camera is available for use by the current application. For information about the CmPortInfo data structure, see page 2-10.The recommended way to use the CmGetPortInfo function is to call it multiple times, incrementing the index parameter by 1 for each call until kCmNoSuchPortError is returned on the Windows platform, or kNoPortErr is returned on the Macintosh platform. Your application code should be prepared to deal with a situation in which it discovers more than one available camera during the calling process. For example, you would provide a dialog box that allows the user to choose the camera with which they would like to make a connection. The handle to the CmPortInfo structure returned by this function is supplied to CmConnect in the portInfoHandle parameter when you want your application to make a connection with the camera. The value contained in the portStatus field of the CmPortInfo structure must be examined before a connection is actually made with the camera. The values in the portStatus field apply to the Windows and Macintosh platforms as follows:The value kPortFree indicates that a camera is attached to the port and no application is currently connected to the camera. You can make a connection to the camera on that port if kPortFree is returned. The value kInUseByGeoPort indicates that a camera is attached to the port, but another application is currently connected to the camera. When you call this function and find a camera that is available and currently not connected, the value in the DataSpeed field of the CmPortInfo structure returned by this function is 0. This is because the actual data transfer rate is not determined until a successful call to CmConnect has been completed. After a successful connection is made, the DataSpeed field in the CmPortInfo structure is updated with the correct data transfer rate. IMPORTANTThis function returns kNoPortErr on the Macintosh platform or kCmNoSuchPortError on the Windows platform if the index parameter is specified as less than 1 or is greater than the number of serial ports available on the host computer. If the index parameter is specified as 0 the system error paramErr (-50) is returned on the Macintosh platform or kCmBadArgError on the Windows platform. It is the responsibility of the application to free the memory area allocated by this function by calling the CmDisposePortInfo function to dispose of the data structure. sRESULT CODESUpon successful completion, CmGetPortInfo returns noErr, and the portInfoHandle parameter supplied to this function contains a valid handle of a CmPortInfo data structure corresponding to the serial port indexed by the index parameter.If an error is detected, the portInfoHandle parameter contains NULL and CmGetPortInfo returns one of the values listed here: kCmAIPError    -6201    An asynchronous operation is already in progress. Macintosh platform only.kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item.kCmCommError    -6214    A serial communication error occurred. Windows platform only.kCmCurrentlyConnectedError    -6205    The camera is connected with an application.kCmNoMemoryError    -6209    System failed to allocate memory.  kCmNoSuchPortError    -6210    Corresponding communication port does not exist. Windows platform only.kCmNotOpenError    -6211    The driver has not been initialized.kCmProtocolError    -6212    Protocol error during communication with the QuickTake 100 camera. Windows platform only.kNoPortErr    -7947    GeoPort error: Corresponding communication port does not exist. Macintosh platform only.paramErr    -50    Parameter is invalid. Macintosh platform only.SEE ALSOCmDisposePortInfo described next; CmConnect on page 2-25 CmDisposePortInfopascal OSErr CmDisposePortInfo(CameraData cameraData,                                 CmPortInfoHandle portInfoHandle); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. portInfoHandle    Handle of the CmPortInfo structure to be freed.DESCRIPTIONThe CmDisposePortInfo function frees the CmPortInfo data structure and associated memory previously allocated by CmGetPortInfo. It is the responsibility of the application to call this function when the CmPortInfo data structure is no longer needed.IMPORTANTApplications must dispose of the CmPortInfo data structure returned by CmGetPortInfo with the CmDisposePortInfo function before making a call to CmCloseDriver. s RESULT CODESUpon successful completion, CmDisposePortInfo returns noErr. If an error is detected, CmDisposePortInfo returns one of the values listed here:kCmAIPError    -6201    An asynchronous operation is already in progress. Macintosh platform only.kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item.kCmCurrentlyConnectedError    -6205    The camera is connected and needs to be disconnected with CmDisconnect before calling CmCloseDriver. Windows platform only. kCmNotOpenError    -6211    The driver has not been initialized.SEE ALSOCmGetPortInfo on page 2-22, CmCloseDriver on page 2-21 CmConnect pascal OSErr CmConnect(CameraData cameraData,                                 CmPortInfoHandle portInfoHandle); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. portInfoHandleHandle of a CmPortInfo structure that has been allocated and returned by a previous call to CmGetPortInfo. DESCRIPTIONThe CmConnect function is used to establish a connection with a camera. After a connection is made, the QuickTake 100 device driver functions can be used to control the camera. On the Macintosh computer the connection is a high-speed serial connection. In a Windows environment the CmConnect function determines the fastest speed at which the host and camera can communicate and selects that speed. IMPORTANTIMPORTANTAn application can connect with only one camera at a time. Although an application may allocate more than one CmPortInfo structure by making multiple calls to the CmGetPortInfo function, a kCmCurrentlyConnectedError error will result if that application tries to connect with more than one camera. sNoteIn the Windows software environment CmConnect determines the data transfer speed at which the QuickTake 100 camera and the host communicate. Therefore, the value in the DataSpeed field of portInfoHandle returned by a call to the CmGetPortInfo function is not valid until after a successful call to CmConnect. If communication errors are detected during image data transfers in the Windows environment, the cause may be the transfer speed set at the time the connection with the camera is made. To correct this situation, Windows applications can create an Windows initialization file (INI file) that limits the upper threshold for serial communication with the QuickTake 100 camera.  The INI file must be in the Windows root directory and be named QTAKE-D.INI. The file must contain the section [QTake1-D] as follows:[QTake1-D]MaxBaudRate = nnn where nnn is a value that determines the upper threshold for data transfer speed. Allowable values are 9600, 19200, 38400, and 57600. For Windows, the CmConnect function uses 57,600 as the default upper threshold when determining the data transfer speed. If a problem exists during data transfer from the camera, use a lower value for MaxBaudRate in the QTAKE-D.INI file.u RESULT CODESUpon successful completion, CmConnect returns noErr.If an error is detected, this function returns one of the values listed here:kCmAIPError    -6201    An asynchronous operation is already in progress. Macintosh platform only.kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item.kCmCurrentlyConnectedError    -6205    The camera is already connected. kCmCameraNotFoundError    -6206    Camera not found on this port. Windows platform only.kCmHandshakeError    -6207    Initial handshake with the camera has failed. Windows platform only.kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only.kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with the camera. Windows platform only.kNoPodErr    -7937    Camera not found on this port. Macintosh platform only.This function returns kCmBadArgError if values in the familyID and deviceID fields in the CmPortInfo structure are other than the global constants kCmFamilyID and kCmDeviceID, respectively. This function also returns kCmCameraNotFoundError if the familyID and deviceID fields are not correct. For Windows applications, CmConnect also updates the dataSpeed field of the CmPortInfo structure with the actual data transfer rate that has been set for subsequent communication with the camera.  SEE ALSOCmGetPortInfo on page 2-22; CmDisconnect, described next CmDisconnectpascal OSErr CmDisconnect(CameraData cameraData); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. DESCRIPTIONThe CmDisconnect function ends the connection with the camera that was previously established by CmConnect. An application should call CmDisconnect whenever it has finished interacting with a camera. Applications must also call this function before connecting with a camera other than the one with which there is a current connection. After the CmDisconnect function has successfully returned, the application can then make another call to CmConnect to establish a new connection for the camera. The CmDisconnect function terminates any outstanding asynchronous operation with a call to CmCancelAsyncOperation on the Windows platform. On the Macintosh platform, PBKillIO is called to cancel the operation. The callback routine for the canceled asynchronous function will also be called. IMPORTANTAn application should not call CmCloseDriver while a camera connection is active. Call CmDisconnect to end the camera connection and then call CmCloseDriver.s RESULT CODESThis function returns noErr on success. On error, this function returns one of the values listed here:kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item.kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized.SEE ALSOCmConnect on page 2-25, CmCloseDriver on page 2-21 Controlling the CameraThe functions in this group are used to retrieve or set various characteristics of the QuickTake 100 camera, for example, getting or setting the camera owner name. CmGetCameraInfopascal OSErr CmGetCameraInfo(CameraData cameraData,                                     CmCameraInfoPtr cameraInfo);cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. cameraInfoPointer to an area large enough to hold an entire CmCameraInfo structure. DESCRIPTIONThe CmGetCameraInfo function retrieves information related to the QuickTake 100 camera. The information is returned in the form of a CmCameraInfo data structure, described on page 2-14. RESULT CODESUpon successful completion, the CmGetCameraInfo function returns noErr and the area pointed to by the cameraInfo parameter contains the CmCameraInfo data structure corresponding to the currently connected camera. Upon failure, this function returns one of the values listed here. Note that in these error cases the content of the area pointed to by cameraInfo is not affected.kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo.kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only. NoteApplications must allocate an area of memory large enough to hold the entire CmCameraInfo structure or an error may occur.u SEE ALSOCmGetPictureInfo, described next; CmGetErrorInfo on page 2-48 CmGetPictureInfopascal OSErr CmGetPictureInfo(CameraData cameraData,                             unsigned short pictureNo,                            CmPictureInfoPtr pictureInfo); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. pictureNo    The number that identifies a particular picture stored in the internal memory of the camera. pictureInfoPointer to an area of memory large enough to hold an entire CmPictureInfo structure.DESCRIPTIONThe CmGetPictureInfo function retrieves information related to a particular picture image stored in the internal memory of the camera. The information is in the form of a CmPictureInfo data structure, which is described on page 2-18. Each image stored within the internal memory of the QuickTake 100 camera has a numeric value associated with it. This number is referred to as the picture number. Essentially, the camera uses numbers to name the images that have been captured. The numbers are assigned in chronological order, with the first picture taken numbered 1, the next picture taken numbered 2, and so on. It is the picture number that is specified in the pictureNo parameter. The picture numbering sequence starts again at the number 1 after a successful call to either the CmErase or the CmEraseAsync function. RESULT CODESUpon successful completion, the CmGetPictureInfo function returns noErr and the area pointed to by the pictureInfo parameter contains the CmPictureInfo structure corresponding to the picture identified by the pictureInfo parameter. If an error is detected, the value returned is one of those listed here. Note that in this case the content of the area pointed to by pictureInfo is unaffected.kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo. kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only.SEE ALSOCmGetCameraInfo on page 2-28, CmGetThumbnailImage on page 2-54, CmGetFullSizeImage on page 2-57, CmGetErrorInfo on page 2-48 CmErasepascal OSErr CmErase(CameraData cameraData);cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. DESCRIPTIONThe CmErase function erases all of the images that have been stored in the internal memory of the camera. After a successful call to CmErase, the picture numbering sequence restarts with the number 1. NoteIf errors are not detected, the CmErase function completes successfully and returns noErr, even if the currently connected camera does not contain any images to erase.u RESULT CODESUpon successful completion, this function returns noErr. If an error is detected, the value returned is one of the following:kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo. kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only.SEE ALSOCmRestoreDefaults on page 2-38CmEraseAsyncpascal OSErr CmEraseAsync(CameraData cameraData,                 CmAsyncCompletionRoutinePtr asyncCompletionRoutine);cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. asyncCompletionRoutineAddress of a callback routine to call when all the pictures stored in the internal memory of the currently connected camera have been erased. DESCRIPTIONThe CmEraseAsync function is the asynchronous version of the CmErase function and is provided for applications that pursue a different thread of execution during the time the pictures stored in the camera are being erased. When the operation completes, the QuickTake 100 driver calls the CmAsyncCompletionRoutine supplied as the asyncCompletionRoutine parameter to this function (see the description of CmAsyncCompletionRoutine on page 2-33).For Windows applications, the address of the callback routine handed to this function must be the one returned by the Windows function MakeProcInstance.IMPORTANTApplications should not attempt to call any other QuickTake 100 driver control functions including this function before the application-defined callback function CMAsyncCompletionRoutine is called by the QuickTake 100 driver.s Windows applications cannot cancel the CmEraseAsync function by calling CmCancelAsyncOperation. RESULT CODESUpon successful completion, the CmEraseAsync function returns noErr. If an error is detected, the value returned is one of the following:kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCantCancel        Currently outstanding asynchronous operation cannot be canceled. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized.SEE ALSOCmAsyncCompletionRoutine, described next; CmCancelAsyncOperation on page 2-34; CmErase on page 2-31; CmTakePictureAsync on page 2-62; CmRestoreDefaults on page 2-38CmAsyncCompletionRoutinetypedef  void (CallbackProc)(void);typedef CallbackProc* CmAsyncCompletionRoutinePtr; DESCRIPTIONThe CmAsyncCompletionRoutine completion routine enables an application to receive notification of the completion of an asynchronous operation. The application provides one or more implementations of the CmAsyncCompletionRoutine function and passes the address of the function as the last parameter to the asynchronous functions CmGetThumbnailImageAsync (Windows platform only), CmGetFullSizeImageAsync (Windows platform only), CmTakePictureAsync, and CmEraseAsync. When any of these asynchronous functions completes its respective operation, the QuickTake 100 driver calls the callback routine. NoteFor Windows applications, the address of the callback routine handed to an asynchronous function must be the one returned by the Windows function MakeProcInstance.uThe method by which the asynchronous call status and bytes transferred (where applicable) are provided to the application differs for the host platforms.For the Windows platform:The gsAsyncStatus global variable contains the value returned by the synchronous version of each of the asynchronous functions. The gulAsyncNBytes global variable is valid only for the functions CmGetThumbnailImageAsync and CmGetFullSizeImageAsync and contains the number of bytes that have actually been transferred to the image buffer allocated for those calls. NoteThe values of the global variables gsAsyncStatus and gulAsyncNBytes are valid only during the time that the CmAsyncCompletionRoutine function is called in response to the completion of an asynchronous operation.uFor the Macintosh platform: A5 globals are saved into a long data type field in the CmCameraData structure when the driver is initially opened. The field is located before the parameter block field, which is also in the data structure. When your completion routine is called, a pointer to the parameter block field can be found at A0 and the result code in D0. You can access the A5 globals by subtracting 4 bytes from the address in A0. RESULT CODESA value of noErr indicates that the asynchronous function completed successfully; otherwise, an error occurred and you should call the CmGetErrorInfo function for additional information. If the asynchronous function was canceled by the user in a Windows application, then the camera returns the camera error and detail code pair kCmErAttention and kCmErCommandAborted when the CMGetErrorInfo function is called. On the Macintosh platform, PBKillIO is called. The kCmdTimeOut GeoPort error and  kCmCameraError are returned, but no additional error detail codes are returned to the CmGetErrorInfo function. See the description of the CmGetErrorInfo function on page 2-48 for details about error return values. SEE ALSOCmGetThumbnailImageAsync on page 2-56, CmGetFullSizeImageAsync on page 2-60, CmTakePictureAsync on page 2-62, CmEraseAsync on page 2-32, CmGetErrorInfo on page 2-48, and CmCancelAsyncOperation, described next CmCancelAsyncOperationpascal OSErr CmCancelAsyncOperation                            (CameraData cameraData);cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. DESCRIPTIONThe CmCancelAsyncOperation function provides a method for Windows applications to cancel either a CmGetThumbnailImageAsync function call or a CmGetFullSizeImageAsync function call that is currently outstanding. The callback routine corresponding to the canceled operation is called by the QuickTake 100 driver before this function returns. The global variable gsAsyncStatus that corresponds to the callback routine for the canceled operation will contain the error and detail code pair kCmErAttention and kCmErCommandAborted. See the description of the CmGetErrorInfo function on page 2-48 for details about error return values.This function returns kCmCantCancel if called while either a CmEraseAsync function call or a CmTakePictureAsync function call is outstanding. NoteThis function is available only for the Windows platform.u RESULT CODESThe CmCancelAsyncOperation function returns noErr if the currently outstanding asynchronous operation has successfully been canceled. If an error is detected, the value returned is one of the following:kCmANIPError    -6203    No asynchronous operation is outstanding.kCmCantCancel        Currently outstanding asynchronous operation cannot be canceled. kCmCommError    -6214    A serial communication error occurred.kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized.SEE ALSOCmGetThumbnailImageAsync on page 2-56, CmGetFullSizeImageAsync on page 2-60, CmTakePictureAsync on page 2-62, CmEraseAsync on page 2-32, CmAsyncCompletionRoutine on page 2-33 CmGetStdFeaturespascal OSErr CmGetStdFeatures(CameraData cameraData,                             CmStdFeaturesPtr stdFeaturesPtr,                             short length);cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. stdFeaturesPtrPointer to a memory location to be filled with the standard features of the underlying device driver.length    Length of the area pointed to by the stdFeaturesPtr parameter. This is the length in bytes of the amount of information you require from the CmStdFeatures structure, which is described on page 2-10.  DESCRIPTIONThe CmGetStdFeatures function retrieves the version number of the underlying QuickTake 100 device driver or Windows DLL. IMPORTANTIf the length parameter is less than the size of the CmStdFeatures data structure, the CmGetStdFeatures function truncates the data that it returns beyond length bytes specified.s NoteThe length parameter exists primarily for a future enhancement to the number of features available to the application.u RESULT CODESUpon successful completion, the CmGetStdFeatures function returns noErr and the area pointed to by the stdFeaturesPtr parameter is filled with the standard features data structure of the underlying device driver. If an error is detected, the value returned is one of the following:kCmAIPError    -6201    An asynchronous operation is already in progress. Macintosh platform only. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. Windows platform only. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. SEE ALSOCmGetProductInfo, described next; CmGetErrorInfo on page 2-48 CmGetProductInfopascal OSErr CmGetProductInfo(CameraData cameraData,                             CmProductInfoPtr productInfo); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. productInfoAddress of a memory area to which this function returns the product information, a CmProductInfo data structure, for the camera currently connected. DESCRIPTIONThe CmGetProductInfo function returns the CmProductInfo data structure related to the currently connected camera. See the description of the CmProductInfo data structure on page 2-12. RESULT CODESUpon successful completion, CmGetProductInfo returns noErr and the area pointed to by productInfo contains the CmProductInfo product information data structure particular to the camera currently connected. See the description of the CmProductInfo data structure on page 2-12. If an error is detected, the value returned is one of the following:kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo.kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only. SEE ALSOCmGetStdFeatures on page 2-35, CmGetErrorInfo on page 2-48 CmRestoreDefaultspascal OSErr CmRestoreDefaults(CameraData cameraData);cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. DESCRIPTIONThe CmRestoreDefaults function resets some of the characteristics of the currently connected camera to their factory settings. The characteristics that are reset to the factory settings are     Item    Default value    Image size    High-resolution    Image width in pixels    640    Image height in pixels    480    Flash mode    Automatic    Host interface timeout period    2.55 secondsNoteThe camera name in the ownerName field of the CmCameraInfo data structure is not reverted to the factory setting by this call. uRESULT CODESUpon successful completion, CmRestoreDefaults returns noErr. If an error is detected, the value returned is one of the following:kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo.kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only. SEE ALSOCmGetStdFeatures on page 2-35, CmGetProductInfo on page 2-37, CmSetOwnerName on page 2-40, CmSetFlashMode on page 2-42, CmSetPictureMode on page 2-41 CmSetDateAndTimepascal OSErr CmSetDateAndTime(CameraData cameraData,                             CmDateAndTimePtr dateAndTime);cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. dateAndTimeAddress of a memory area that contains the date and time to be set for the currently connected camera. DESCRIPTIONThe CmSetDateAndTime function changes the date and time maintained by the camera. RESULT CODESThe CmSetDateAndTime function returns noErr if the operation has been successfully completed. If an error is detected, the value returned is one of the following:kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo.kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only. SEE ALSOCmSetOwnerName, described next; CmSetPictureMode on page 2-41, CmSetFlashMode on page 2-42 CmSetOwnerNamepascal OSErr CmSetOwnerName(CameraData cameraData,                            BufferPtr* ownerName); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. ownerNameAddress of a character string (32 bytes) to be stored in the camera. This string is used as the owner name identification for the camera. The name has a maximum length of 26 characters. DESCRIPTIONThe CmSetOwnerName function changes the owner name identification of the currently connected camera. The ownerName parameter points to an array of characters 32 bytes in length. IMPORTANTThe owner name identification must be exactly 32 bytes—no more, no less. To accomodate mounting the QuickTake 100 on the Macintosh descktop, the owner name limit is set at 26 characters. When setting the camera owner name to 26 characters or less, be sure to use space characters to pad the ownerName parameter to 32 bytes.s The current value for the owner name of the camera is contained in the ownerName field of the CmCameraInfo data structure, which is described on page 2-14. The CmCameraInfo data structure can be retrieved via a call to CmGetCameraInfo. The camera owner name remains valid until the application issues another call to CmSetOwnerName.RESULT CODESThe CmSetOwnerName function returns noErr if the identification has successfully been stored. If an error is detected, the value returned is one of the following:kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo.kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only. SEE ALSOCmGetCameraInfo on page 2-28, CmSetPictureMode, described next; CmSetFlashMode on page 2-42, CmGetErrorInfo on page 2-48 CmSetPictureModepascal OSErr CmSetPictureMode(CameraData cameraData,                             unsigned char pictureMode);cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. pictureModeThe picture mode for the camera. DESCRIPTIONThe CmSetPictureMode function changes the attributes related to the picture mode of the camera currently connected. The picture mode of the camera determines the type of pictures that will be taken by the camera. The possible values for the pictureMode parameter are as follows:kCmCOLOR    The subsequent pictures taken shall be stored in full color.kCmCOLORQ    The subsequent pictures taken shall be in full color, but the size will be reduced to one-quarter (320 by 240 pixels) of the default full size (640 by 480 pixels). The picture mode attributes are in effect until either the application makes another call to the CmSetPictureMode function to set new values, the application makes a call to CmRestoreDefaults, or the user presses the corresponding resolution button on the camera. NoteThe resolution attributes of images already stored inside the camera prior to a call to CmSetPictureMode are not affected by the function.u RESULT CODESIf the specified mode has successfully been registered in the camera, the CmSetPictureMode function returns noErr. If an error is detected, the value returned is one of the following:kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo.kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only. SEE ALSOCmRestoreDefaults on page 2-38, CmSetOwnerName on page 2-40, CmGetErrorInfo on page 2-48, CmSetFlashMode, described next CmSetFlashModepascal OSErr CmSetFlashMode(CameraData cameraData,                             Boolean flashMode); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. flashMode    The flash mode to be registered in the camera.DESCRIPTIONThe CmSetFlashMode function registers a new flash mode in the camera currently connected. The flash mode of a camera determines whether the flash is to be on, off, or automatic. The possible values for the flashMode parameter are kCmFlashOn    The currently connected camera always uses the flash to take subsequent pictures. kCmFlashOffThe currently connected camera does not use the flash to take subsequent pictures. kCmFlashAutoThe currently connected camera automatically determines how the flash is used to take subsequent pictures. The flash mode setting is in effect until either the application makes another call to the CmSetFlashMode function, the application makes a call to CmRestoreDefaults, or the user presses the corresponding flash button on the camera.RESULT CODESIf the specified flash mode has successfully been registered, the CmSetFlashMode function returns noErr. If an error is detected, the value returned is one of the following:kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo.kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only. SEE ALSOCmSetOwnerName on page 2-40, CmSetPictureMode on page 2-41, CmRestoreDefaults on page 2-38, CmGetErrorInfo on page 2-48 CmSetSleeppascal OSErr CmSetSleep                             (CameraData cameraData, short sleepDelay); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. sleepDelay    A numeric value that represents the period of time the camera shall remain ready for command processing before entering the sleep state. DESCRIPTIONThe CmSetSleep function sets the time that the camera will remain fully active prior to entering the sleep state. When a QuickTake 100 camera is in the sleep state, the load on the batteries is reduced to help conserve battery life. The default time delay before the camera enters the sleep state is five minutes. The time delay is reset to five minutes after you disconnect from the camera. The sleepDelay parameter is expressed as a number in the range 0 through 5 with the delay values corresponding to those shown in Table 2-1. Table 2-1    CmSetSleep sleepDelay parameter values    Value    Constant name    Description    0    kCmSleepNow    Enter the sleep state immediately.     1    kCmSleep5M    Enter the sleep state after 5 minutes has elapsed.    2    kCmSleep15M    Enter the sleep state after 15 minutes has elapsed.    3    kCmSleep30M    Enter the sleep state after 30 minutes has elapsed.    4    kCmSleep60M    Enter the sleep state after 60 minutes has elapsed.    5    kCmSleepNever    Do not enter the sleep state.The sleep delay time restarts after any command is sent to the camera. NoteOnce the QuickTake 100 camera enters the sleep state, any subsequent commands sent to the camera will return kCmCommError because the serial port connection will have timed out. To reestablish communication with the QuickTake 100 camera, the camera must be manually switched on again. Then your application can call the CmDisconnect function followed by a call to CmConnect to make a connection with the camera.u RESULT CODESThe CmSetSleep function returns noErr if successful. If an error is detected, one of the following values is returned:kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo.kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only. CmGetDecompTablepascal OSErr CmGetDecompTable (CameraData cameraData,                                         BufferPtr decompTablePtr); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. decompTablePtrPointer to the location in which this function writes the decompression data corresponding to the camera. The decompression information is needed to expand images retrieved from the camera. The size of the memory allocated must be greater than or equal to the size of the structure, which is 98 bytes in length. DESCRIPTIONThe CmGetDecompTable function returns the compression table structure corresponding to the camera currently connected. Windows applications pass this structure to the IPM with the IpSetCompressionTable function. The IPM uses the information in this structure to decompress the image data from the camera before any display of the picture can take place on the host computer. See the functions defined in Chapter 4, “Displaying QuickTake 100 Images in a Windows Application,” for more information about how the compression table data structure returned by this function is used by the IPM. RESULT CODESThe CmGetDecompTable function returns noErr if the data is successfully retrieved and written to the area pointed to by decompTablePtr. If an error is detected, the value returned is one of the following:kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo.kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only. SEE ALSOCmGetColorCorrectionMatrix, described next; CmGetErrorInfo on page 2-48; and the functions described in Chapter 4, “Displaying QuickTake 100 Images in a Windows Application” CmGetColorCorrectionMatrixpascal OSErr CmGetColorCorrectionMatrix                            (CameraData cameraData,                              CmColorMatrixPtr colorMatrix); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. colorMatrixPointer to the location in which this function writes the CmColorMatrix data corresponding to the camera. The size of the memory allocated must be greater than or equal to the size of the CmColorMatrix data structure. DESCRIPTIONThe CmGetColorCorrectionMatrix function returns the CmColorMatrix data structure corresponding to the camera currently connected. Windows applications must pass this data structure to the IPM to accurately reproduce the QuickTake 100 image on the host display. See the functions defined in Chapter 4, “Displaying QuickTake 100 Images in a Windows Application,” for more information about how the data structure returned by this function is used by the IPM.  Since the color matrix and image compression schemes in the camera may change in the future, it is always important to check the version number of the color matrix. You must make adjustments in your image processing setup, based on the version number of the color matrix in the camera as follows: On the Windows platform, if the color matrix in the camera is version 1, use the default color matrix in the Windows IPM and pass that matrix back to the IPM for image processing. If it is not version 1, pass the color matrix returned by the camera to the IPM. On the Macintosh platform, if the color matrix is not version 1, get the color matrix from the camera, and fill in the color matrix field for the PICT QuickTake file definition passsed to the QuickTake QuickTime decompressor with the camera color matrix. If the version number is 1, process and display the images with the QuickTake decompressor using the same method you use for QuickTime PICT files. See Chapter 5, “Displaying QuickTake 100 Images in a Macintosh Application” for more information about displaying QuickTake images on the Macintosh computer platform.RESULT CODESThe CmGetColorCorrectionMatrix function returns noErr if the data is successfully retrieved and written to the area pointed to by colorMatrix. If an error is detected, the value returned is one of the following:kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo.kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only. SEE ALSOCmGetDecompTable on page 2-45; CmGetErrorInfo, described next; and the functions described in Chapter 4, “Displaying QuickTake 100 Images in a Windows Application” CmGetErrorInfopascal OSErr CmGetErrorInfo(CameraData cameraData,                             shortPtr category,                            shortPtr detail); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. category    Address of a short into which this function returns the category code of a kCmCameraError error. The specifics of the category codes are provided in Table 2-2 on page 2-49.detail    Address of a short into which this function returns the detail code of a kCmCameraError error. The specifics of the detail codes are provided in Table 2-3 on page 2-50.DESCRIPTIONThe CmGetErrorInfo function retrieves detailed information about errors returned by the camera. The information returned by CmGetErrorInfo is a pair of short integers in the form category, detail. When a camera error is detected by a call to one of the QuickTake 100 driver functions, the function returns kCmCameraError. To get detailed information about the camera error, call CmGetErrorInfo. For example, a call to the CmGetPictureInfo function with an invalid picture number parameter will cause the function to return a camera error kCmCameraError. To find out what condition caused the camera error, call CmGetErrorInfo, which will return the category and detail code pair kCmErBadPictureNumber and kCmErBadPictNumInfo. The category code returned in the area pointed to by the category parameter provides information about the type of error encountered. The codes and definitions for category are listed in Table 2-2. Codes are hexadecimal values. Table 2-2    QuickTake 100 driver error category codes, mnemonics, and definitions    Code    Mnemonic    Definition    00    kCmErNoError    The function completed successfully.    01    kCmErNoBattery    Battery low, cannot complete operation.    02    kCmErMemoryFull    Image memory is full, cannot take another picture.    03    kCmErFlashNotReady    Flash not ready for requested operation.    04    kCmErImageMemoryDefect    An error has been detected in the camera image memory.    05    kCmErAttention    A recoverable error or camera state change has been detected. See also the description of the kCmErCommandAborted detail error code in Table 2-3.    06    kCmErParityError    An error has been detected in the RAM.    07    kCmErTimeoutError    A communication error between the camera and host has occurred.    08    kCmErHardwareError    An unrecoverable hardware error has occurred.    09    kCmErBadParameter    An unrecoverable error caused by invalid values in a function call has occurred.    0A    kCmErBadPictureNumber    An invalid picture number parameter has occurred.     FF    kCmErUnknownError    Call Apple if you get this category code.As described earlier, each error category has an associated detail code. The detail code returned in the area pointed to by the detail parameter provides specific information about the error that occurred. The codes, mnemonics, and definitions for detail are listed in Table 2-3. Codes are hexadecimal values. Table 2-3    QuickTake 100 device driver error detail codes, mnemonics, and definitions     Code    Mnemonic    Definition    00    kCmErNoError    The function completed successfully, no error.    01    kCmErNoBattery    Battery low, cannot complete operation.    02    kCmErMemoryFull    Image memory is full, cannot take another picture.    03    kCmErFlashNotReady    Flash not ready for requested operation.    04    kCmErImageMemoryDefect    An error has been detected in the image memory.     06    kCmErParityError    A parity error has been detected while processing the last command from the host.    07    kCmErTimeoutError    The host timed out.     0B    kCmErGeneralHWError    An unspecified hardware error has been detected.    0C    kCmErCPUError4Bit    An error has been detected inside the 4-bit CPU.    0D    kCmErCPUError8Bit    An error has been detected inside the 8-bit CPU.    0E    kCmErDSPError    An error has been detected inside the DSP.    0F    kCmErFrameMemoryError    An error has been detected in the frame memory.    10    kCmErImageMemoryError    An image memory error other than the kCmErImageMemoryDefect error has been detected.     11    kCmErInvalidCmdCode    The operation code field of the last command block issued by the host contains an invalid value.    12    kCmErInvalidControlCmd    The last control command code is unknown.     13    kCmErInvalidCmdData    One or more parameters specified in the command descriptor block in the last command from the host contains an invalid value.     14    kCmErInvalidData    An invalid value was specified in the additional data following the last command descriptor block.    15    kCmErNoData    No additional data to be sent to the host.     16    kCmErBadPicNumImage    A picture corresponding to the specified picture number does not exist.    17    kCmErBadPictNumInfo    A CmPictureInfo data structure corresponding to the specified picture number does not exist.continuedTable 2-3    QuickTake 100 device driver error detail codes, mnemonics, and definitions (continued)    Code    Mnemonic    Definition    18    kCmErCommandAborted    An asynchronous operation has been successfully terminated by the host. If the application cancels an asynchronous operation and if the operation is successfully canceled, the callback routine for that operation returns a status code of CmCameraError. A call to CmGetErrorInfo will then return the category and detail code pair kCmErAttention and kCmErCommandAborted .     19    kCmErTooManyImageMemoryDefectsAn error has been detected in the image memory after all of the spare image memory blocks have been used. NoteCmGetErrorInfo itself may return kCmCameraError.u This function returns noErr when called without your application having detected a kCmCameraError error. In this case, the areas pointed to by category and detail will both contain kCmErNoError.RESULT CODESThe CmGetErrorInfo function returns noErr if error information has successfully been retrieved from the camera currently connected. The areas pointed to by category and detail contain detailed information related to the last error detected. If an error is detected, the value returned is one of the following:kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo.kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only. SEE ALSOAll QuickTake 100 driver functions CmCheckIfReadypascal OSErr CmCheckIfReady(CameraData cameraData);cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. DESCRIPTIONThe CmCheckIfReady function determines whether the camera currently connected is ready for subsequent host command processing. This function provides a simple way to confirm that the currently connected camera is still connected to the host. RESULT CODESCmCheckIfReady returns noErr if the camera is ready to process commands from the host computer. Otherwise, it returns one of the values listed here: kCmAIPError    -6201    An asynchronous operation is already in progress. Windows platform only.kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item.kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo. kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized.kCmProtocolError    -6212    Protocol error during communication with a QuickTake 100 camera. Windows platform only. SEE ALSOCmSelfTest, described next; CmGetErrorInfo on page 2-48CmSelfTestpascal OSErr CmSelfTest(CameraData cameraData); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. DESCRIPTIONThe application calls the CmSelfTest function to trigger the diagnostics test built into the camera currently connected. RESULT CODESThe CmSelfTest function returns noErr if the test has successfully been completed. If the test is not successful, the function returns one of the values listed here:kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item.kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo.kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only.kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with a QuickTake 100 camera. Windows platform only. SEE ALSOCmCheckIfReady on page 2-52, CmGetErrorInfo on page 2-48 Retrieving and Capturing ImagesThe functions in this group are used to retrieve and capture images. CmGetThumbnailImagepascal OSErr CmGetThumbnailImage(CameraData cameraData,                             unsigned short pictureNo,                             BufferPtr thumbnailBuffer,                            unsigned long numberOfBytesToRead,                            Boolean firstRead,                            LongPtr actualBytes); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. pictureNo    The number identifying the picture whose thumbnail image is to be retrieved.thumbnailBuffer Address of the area to be filled with the data that represent the thumbnail image. numberOfBytesToReadNumber of bytes of data to be read into thumbnailBuffer.  This value must be a multiple of 512 unless the entire thumbnail is being transferred in a single call or the last block of data in a multiple-call sequence is read. firstRead     If TRUE, uploads the image from the beginning. actualBytesAddress of an area to which this function returns the number of bytes actually read into thumbnailBuffer. DESCRIPTIONThe CmGetThumbnailImage function retrieves the thumbnail version of the image of a particular picture. To make presenting previews of an image in an application easier, the QuickTake 100 camera is capable of sending the host computer a miniaturized version of the image corresponding to a specified picture. This version of the image is called the thumbnail image. The total number of bytes in a thumbnail image is 2400. The numberOfBytesToRead parameter may be less than that. In this case, multiple calls to this function are necessary to get the entire thumbnail image. When making multiple calls to retrieve an image, the application sets firstRead to TRUE the first time the function is called on a particular image, and then sets it to FALSE for the subsequent calls to this function to get the remaining blocks of the image. The area pointed to by the last parameter, actualBytes, contains the number of bytes actually transferred into the buffer pointed to by thumbnailBuffer.NoteNoteIt is the responsibility of the application to allocate the buffer pointed to by thumbnailBuffer. uIf you plan to have your application upload the image in chunks of blocks, then you should not attempt to call any QuickTake 100 driver function (including CmGetThumbnailImage invoked on a different pictureNo parameter) in between successive calls to CmGetThumbnailImage. If you do make other calls on a different picture, it causes the current upload operation to terminate prematurely, and the application will have to restart the upload from the beginning (firstRead = TRUE).The application is expected to know exactly how many times to call this function with the appropriate size buffer (see CmGetPictureInfo). Trying to read image data beyond the actual size of the image will result in an error. The CmGetThumbnailImage function does not return until it has retrieved the specified number of bytes or it has finished. If you want your application to pursue a different thread of execution while retrieving thumbnail data, you should call CmGetThumbnailImageAsync instead of CmGetThumbnailImage.For information about decoding the data format of the image returned by this function, see the CmGetDecompTable function described on page 2-45 and the CmGetColorCorrectionMatrix function described on page 2-46.RESULT CODESUpon successful completion, the CmGetThumbnailImage function returns noErr, and the area pointed to by thumbnailBuffer is filled with the thumbnail image corresponding to the picture identified by the parameter pictureNo. If an error is detected, this function returns one of the values listed here. Note that when an error occurs, the content of the area pointed to by thumbnailBuffer is undefined.kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo. kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only.SEE ALSOCmGetPictureInfo on page 2-29; CmGetFullSizeImage on page 2-57; CmGetThumbnailImageAsync, described next; CmGetErrorInfo on page 2-48 CmGetThumbnailImageAsyncpascal OSErr CmGetThumbnailImageAsync                (CameraData cameraData,                unsigned short pictureNo,                BufferPtr thumbnailBuffer,                unsigned long numberOfBytesToRead,                Boolean firstRead,                CmAsyncCompletionRoutinePtr asyncCompletionRoutine); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. pictureNo    The number identifying the picture whose thumbnail image is to be uploaded.thumbnailBufferAddress of a data area to be filled with the data that represent the thumbnail image.numberOfBytesToReadNumber of bytes of data to be read into thumbnailBuffer. This value must be a multiple of 512 unless the entire thumbnail is being transferred in a single call or the last block of data in a multiple-call sequence is read. firstRead    If TRUE, upload starts from the beginning of the image specified.asyncCompletionRoutineAddress of a callback function to be called by the driver when the data transfer is complete.DESCRIPTIONThe CmGetThumbnailImageAsync function is the asynchronous version of CmGetThumbnailImage and is provided for Windows applications that pursue other activities during the time in which a thumbnail image is being retrieved from the camera. The parameters are the same as those supplied to the CmGetThumbnailImage function, except for the last parameter, which is an address of a callback function to be called when the total number of bytes of data specified in numberOfBytesToRead has been transferred to the location pointed to by thumbnailBuffer. (See CmAsyncCompletionRoutine on page 2-33 for information about the callback function.) The address of the callback routine handed to this function must be the one returned by the Windows function MakeProcInstance. IMPORTANTIMPORTANTYour application should not issue a call to any QuickTake 100 driver function (including this function) before completion routine has been called. Likewise, the application should not call any QuickTake 100 driver function other than this function during the time an image is being retrieved. The CmGetThumbnailImageAsync function is valid only for the Windows platform. sRESULT CODESUpon successful completion, the CmGetThumbnailImageAsync function returns noErr. If an error is detected, this function returns one of the values listed here:kCmAIPError    -6201    An asynchronous operation is already in progress.kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item.kCmNoMemoryError    -6209    System failed to allocate memory. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. SEE ALSOCmAsyncCompletionRoutine on page 2-33, CmCancelAsyncOperation on page 2-34, CmGetThumbnailImage on page 2-54, CmGetFullSizeImageAsync on page 2-60, CmGetDecompTable on page 2-45, CmGetColorCorrectionMatrix on page 2-46, CmGetErrorInfo on page 2-48 CmGetFullSizeImagepascal OSErr CmGetFullSizeImage(CameraData cameraData,                            unsigned short pictureNo,                            BufferPtr imageBuffer,                            unsigned long numberOfBytesToRead,                            Boolean firstRead,                            LongPtr  actualBytes); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. pictureNo    The number identifying the picture whose full-size image is to be uploaded. imageBufferAddress of the buffer into which data corresponding to the image is to be stored.numberOfBytesToReadThe number of bytes of data to be transferred to imageBuffer. This value must be a multiple of 512 unless the entire image is being transferred in a single call or when the last block of data in a multiple-call sequence is read. firstRead     If TRUE, data is transferred beginning from the start of the image.actualBytesAddress of a memory location into which this function writes the number of bytes actually transferred into imageBuffer.NoteWindows applications should not use the BufferPtr type for the imageBuffer parameter as it is defined on page 2-9 when making a call to the CmGetFullSizeImage function, if the number of bytes to read into the buffer required for the image is greater than 64,000 (high-resolution images require 115,200 bytes). Instead, use type coercion to change the type of the imageBuffer parameter to unsigned char huge*.u DESCRIPTIONThe CmGetFullSizeImage function retrieves the full-size image of the picture in the camera. Your application may allocate enough memory to hold the entire amount of data comprising the image to be retrieved. In this case, set numberOfBytesToRead to the actual number of bytes of the image (see CmGetPictureInfo). The entire data retrieval process finishes with a single call to the function.However, if host memory is in short supply, numberOfBytesToRead may be set to less than the actual number of bytes comprising the image. In this case, multiple calls to this function are necessary to upload all of the image data.To make multiple calls to CmGetFullSizeImage, set firstRead to TRUE in the first call to the function on a particular image, and then set firstRead to FALSE for the subsequent calls to get the remaining blocks of the image. The area pointed to by the last parameter, actualBytes, contains the number of bytes actually transferred into the buffer pointed to by imageBuffer.For information about decoding the data format of the image returned by this function, see the CmGetDecompTable function described on page 2-45, the CmGetColorCorrectionMatrix function described on page 2-46, the IpGetCompressionTable function described on page 4-18, the IpSetCompressionTable function described on page 4-19, and the IpInitCompressionTable function described on page 4-9.It is the responsibility of your application to allocate the buffer pointed to by imageBuffer.NoteIf your application uploads the image in chunks of blocks, it should not attempt to call any QuickTake 100 driver function (including this function on a different picture) in between successive calls to CmGetFullSizeImage. Any attempt at calling another function causes the current retrieval operation to end prematurely and makes it necessary to restart the process from the beginning (firstRead = TRUE). The application is expected to know exactly how many times it must call CmGetFullSizeImage and with how large a buffer. Attempting to read image data beyond the actual size of the data results in an error. The CmGetFullSizeImage function does not return to the application until it has retrieved the specified number of bytes or it has finished. uIf you want your application to pursue a different thread of execution during the retrieval process, call CmGetFullSizeImageAsync instead of CmGetFullSizeImage.RESULT CODESUpon successful completion, the CmGetFullSizeImage function returns noErr and the area pointed to by imageBuffer is filled with the image corresponding to the picture identified by the second parameter, pictureNo. If an error is detected, CmGetFullSizeImage returns one of the values listed here. Note that when an error occurs, the content of the area pointed to by the imageBuffer parameter is undefined.kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo. kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only.SEE ALSOCmGetCameraInfo on page 2-28; CmGetPictureInfo on page 2-29; CmGetThumbnailImage on page 2-54; CmGetFullSizeImageAsync described next; CmGetDecompTable on page 2-45; CmGetColorCorrectionMatrix on page 2-46; CmGetErrorInfo on page 2-48 CmGetFullSizeImageAsyncpascal OSErr CmGetFullSizeImageAsync(CameraData cameraData,                unsigned short pictureNo,                BufferPtr imageBuffer,                unsigned long numberOfBytesToRead,                Boolean firstRead,                CmAsyncCompletionRoutinePtr asyncCompletionRoutine); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. pictureNo    The number identifying the picture whose full-size image is to be uploaded. imageBufferAddress of the buffer into which data corresponding to the image is to be stored.numberOfBytesToReadThe number of bytes of data to be transferred to imageBuffer. This value must be a multiple of 512 unless the entire image is being transferred in a single call or when the last block of data in a multiple-call sequence is read. firstRead    If TRUE, data is transferred beginning from the start of the image.asyncCompletionRoutineAddress of a callback function to be called when the specified number of bytes has been transferred to the buffer pointed to by imageBuffer.DESCRIPTIONThe CmGetFullSizeImageAsync function is the asynchronous version of CmGetFullSizeImage and is provided for Windows applications that pursue a different thread of execution during the time the image retrieval process is taking place.The parameters are the same as those supplied to the CmGetFullSizeImage function except for the last parameter, asyncCompletionRoutine, which is the address of a callback routine to be called after the specified number of bytes have been transferred to the memory location pointed to by imageBuffer. (See CmAsyncCompletionRoutine on page 2-33.) For Windows applications, the address of the callback routine handed to this function must be the one returned by the Windows function MakeProcInstance.IMPORTANTYour application should not attempt to call any of the QuickTake 100 driver functions (including this function) prior to the time that the QuickTake 100 driver calls your callback routine.Likewise, you should not attempt to issue calls to any of the QuickTake 100 driver functions (except this function) while the image retrieval process is taking place. sThe CmGetFullSizeImageAsync function is valid only for the Windows platform.RESULT CODESUpon successful completion, the CmGetFullSizeImageAsync function returns noErr. If an error is detected, the value returned by this function is one of the following:kCmAIPError    -6201    An asynchronous operation is already in progress.kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item.kCmNoMemoryError    -6209    System failed to allocate memory. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. SEE ALSOCmAsyncCompletionRoutine on page 2-33, CmCancelAsyncOperation on page 2-34, CmGetFullSizeImage on page 2-57, CmGetThumbnailImageAsync on page 2-56, CmGetErrorInfo on page 2-48 CmTakePicturepascal OSErr CmTakePicture(CameraData cameraData,                                 Boolean timerOn);cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. timerOn    If TRUE, the camera will take a picture at the expiration of its internal timer. If FALSE, the picture is taken immediately. DESCRIPTIONThe CmTakePicture function causes the camera currently connected to take a picture.Setting timerOn to FALSE causes the next picture to be taken immediately. Setting it to TRUE causes the camera to take the picture at the expiration of its internal timer. IMPORTANTThe number of pictures that can be taken by the camera must at least be 1 in order for the CmTakePicture function to succeed.CmTakePicture does not return to the application until the camera has finished attempting to take a picture. Care should be taken to ensure that the function has completed the picture-taking operation when timerOn is specified as TRUE. sRESULT CODESIf a picture has successfully been taken, the CmTakePicture function returns noErr. If an error is detected, this function returns one of the following values:kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo. kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera. Macintosh platform only. kCmCommError    -6214    A serial communication error occurred. Windows platform only. kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. kCmProtocolError    -6212    Protocol error during communication with QuickTake 100 camera. Windows platform only.SEE ALSOCmGetCameraInfo on page 2-28; CmTakePictureAsync, described next; CmErase on page 2-31; CmGetErrorInfo on page 2-48CmTakePictureAsyncpascal OSErr CmTakePictureAsync(CameraData cameraData,                 Boolean timerOn,                 CmAsyncCompletionRoutinePtr asyncCompletionRoutine); cameraData    The private data structure returned by CmOpenDriver when your application opens the QuickTake 100 device driver. timerOn    If TRUE, the camera will take a picture at the expiration of its internal timer. If FALSE, the picture is taken immediately. asyncCompletionRoutineAddress of a callback routine to be called after a picture has been taken.DESCRIPTIONThe CmTakePictureAsync function is the asynchronous version of CmTakePicture and is provided for applications that pursue a different thread of execution during the time a picture is being taken by the camera currently connected. For Windows applications, the address of the callback routine handed to this function must be the one returned by the Windows function MakeProcInstance.IMPORTANTYour application should not attempt to call any of the QuickTake 100 driver functions including this function before the corresponding callback routine has been invoked. Care should be taken to ensure that the function has completed its picture taking operation when timerOn is specified as TRUE.Windows applications cannot cancel this function by calling CmCancelAsyncOperation.s RESULT CODESThe CmTakePictureAsync function returns noErr if the request is successful. If an error is detected, this function returns one of the following error values:kCmAIPError    -6201    An asynchronous operation is already in progress. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCantCancel        Currently outstanding asynchronous operation cannot be canceled. Windows platform only.kCmNoMemoryError    -6209    System failed to allocate memory. Windows platform only. kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNotOpenError    -6211    The QuickTake 100 driver has not been initialized. SEE ALSOCmAsyncCompletionRoutine on page 2-33, CmCancelAsyncOperation on page 2-34, CmTakePicture on page 2-61, CmEraseAsync on page 2-32, CmGetErrorInfo on page 2-48 C-Language Summary of the QuickTake 100 Device DriverConstants/* CmSetPictureMode picture modes */kCmColor 0x10kCmColorQ 0x20/* CmSetFlashMode flash modes */kCmFlashOn 0x02kCmFlashOff 0x01kCmFlashAuto 0x00/* CmSetOwnerName owner name string length */kCmMAXIDWIDTH 32/* decompression table size */kCmDecompTableSize 98/* sleep modes */kCmSleepNow 0kCmSleep5M 1kCmSleep15M 2kCmSleep30M 3kCmSleep60M 4kCmSleepNever 5/* battery status indicators */kPowerAdapter     140     /* Power adapter is connected */kBatteryRangeFull     95     /* Battery is fully charged */kBatteryIconFull     86     /* Values >= 86 indicates the battery          icon shows full charge */kBatteryIconHalf     80     /* Values 80 through 85 indicate that the battery          icon shows half charge */kBatteryRangeEmpty     75     /* Battery has an insufficient charge, battery         icon shows empty*/Data TypesCameraDataFor the Macintosh platform CameraData is defined as typedef CmCameraData* CameraData; For the Windows platform CameraData is defined astypedef unsigned short CameraData; BufferPtrFor the Macintosh platform BufferPtr is defined as typedef unsigned char* BufferPtr;For the Windows platform BufferPtr is defined astypedef unsigned char far* BufferPtr;CmStdFeaturestypedef struct {    short version;} CmStdFeatures, *CmStdFeaturesPtr;CmPortInfotypedef struct {    Handle                    portIcon;    StringHandle                      portName;    unsigned long                     portStatus;    StringHandle   appName;    unsigned char  familyID;    unsigned char  deviceID;    unsigned short beaconParam;    Handle                     portConfig;    unsigned long                    DataSpeed;} CmPortInfo, *CmPortInfoPtr, **CmPortInforHandle;CmProductInfotypedef struct {    char                     vendorName[8];    char                    productIdentification[16];    unsigned char                    hardwareVersion[2];       unsigned char                    firmwareVersion[2];} CmProductInfo, *CmProductInfoPtr;CmDateAndTimetypedef struct {    unsigned char                    month;    unsigned char                    day;    unsigned char                    year;    unsigned char                    hour;    unsigned char                    minute;    unsigned char                    second;} CmDateAndTime, *CmDateAndTimePtr;CmInterfacetypedef struct {    unsigned char                        transferRate;    unsigned char                        configuration;    unsigned char                        timeOut;} CmInterface;CmCameraInfotypedef struct {    unsigned char                        batteryStatus;    unsigned short                        noPicturesTaken;    unsigned short                        noPictureImageAvailable;    unsigned short                        fullImageWidth;    unsigned short                        fullImageHeight;    unsigned short                        thumbnailImageWidth;    unsigned short                        thumbnailImageHeight;    CmDateAndTime                        cameraDateAndTime;    unsigned char                        flashMode;    unsigned short                        exposureTime;    unsigned short                        FNumber;    unsigned char                        pictureMode;    unsigned char                        reserved;    unsigned char                        fullImageDatCompMode;    unsigned char                        thumbImageDatCompMode;    unsigned long                        totalMemorySize;    unsigned long                        freeMemorySize;    char                        ownerName[32];    unsigned char                        CCDSensorType;    CmInterface                        hostInterface;     unsigned char                        cameraInformationBytes[6];    unsigned char                        compDecompParamVersion[4];    unsigned char                        colorMatrixVersion[4];    unsigned char                        spareImageMemoryBlock;    unsigned short                        noBasePicturesTaken;    unsigned short                        noQuarterPicturesTaken;    unsigned char                        sleepDelay;} CmCameraInfo, FarPointer CmCameraInfoPtr;CmPictureInfotypedef struct  {    unsigned short                        pictureNo;    unsigned long                        imageDataSize;    unsigned short                        width;    unsigned short                        height;    CmDateAndTime                        dateAndTime;    unsigned char                        flashMode;    unsigned short                        exposureTime;    unsigned short                        FNumber;    unsigned char                        pictureMode;    unsigned char                        dataCompressionMode;    unsigned char                        defectiveFlag;} CmPictureInfo, *CmPictureInfoPtr;CmColorMatrixtypedef struct {    unsigned char colorMatrixVersion[4];    double colorCorrectionMatrix[12];} CmColorMatrix,  *CmColorMatrixPtr;Functions Opening and Closing the QuickTake 100 Device Driverpascal OSErr CmOpenDriver                            (CameraDataPtr cameraData);pascal OSErr CmCloseDriver                            (CameraData cameraData);Connecting With the Camerapascal OSErr CmGetPortInfo                            (CameraData cameraData,                             unsigned long index,                             CmPortInfoHandlePtr portInfoHandle);pascal OSErr CmDisposePortInfo                            (CameraData cameraData,                              CmPortInfoHandle portInfoHandle);pascal OSErr CmConnect                            (CameraData cameraData,                              CmPortInfoHandle portInfoHandle);pascal OSErr CmDisconnect                            (CameraData cameraData);Controlling the Camerapascal OSErr CmGetCameraInfo                            (CameraData cameraData,                              CmCameraInfoPtr cameraInfo);pascal OSErr CmGetPictureInfo                            (CameraData cameraData,                              unsigned short pictureNo,                             CmPictureInfoPtr pictureInfo);pascal OSErr CmErase                            (CameraData cameraData);pascal OSErr CmEraseAsync                            (CameraData cameraData,                              CmAsyncCompletionRoutinePtr asyncCompletionRoutine);typedef  void (CallbackProc)(void);typedef CallbackProc* CmAsyncCompletionRoutinePtr;pascal OSErr CmCancelAsyncOperation                                (CameraData cameraData);pascal OSErr CmGetStdFeatures                            (CameraData cameraData,                              CmStdFeaturesPtr stdFeaturesPtr,                              short length);pascal OSErr CmGetProductInfo                            (CameraData cameraData,                              CmProductInfoPtr productInfo);pascal OSErr CmRestoreDefaults(CameraData cameraData);pascal OSErr CmSetDateAndTime                            (CameraData cameraData,                              CmDateAndTimePtr dateAndTime);pascal OSErr CmSetOwnerName                            (CameraData cameraData,                              BufferPtr* ownerName);pascal OSErr CmSetPictureMode                            (CameraData cameraData,                              unsigned char pictureMode);pascal OSErr CmSetFlashMode(CameraData cameraData,                             Boolean flashMode);pascal OSErr CmSetSleep                             (CameraData cameraData,                              short sleepDelay);pascal OSErr CmGetDecompTable                             (CameraData cameraData,                              BufferPtr decompTablePtr);pascal OSErr CmGetColorCorrectionMatrix                             (CameraData cameraData,                              CmColorMatrixPtr colorMatrix);pascal OSErr CmGetErrorInfo                            (CameraData cameraData,                              shortPtr category,                             shortPtr detail);pascal OSErr CmCheckIfReady                            (CameraData cameraData);pascal OSErr CmSelfTest                            (CameraData cameraData);Retrieving and Capturing Imagespascal OSErr CmGetThumbnailImage                            (CameraData cameraData,                             unsigned short pictureNo,                             BufferPtr thumbnailBuffer,                            unsigned long numberOfBytesToRead,                            Boolean firstRead,                            LongPtr actualBytes);pascal OSErr CmGetThumbnailImageAsync(CameraData cameraData,                            unsigned short pictureNo,                            BufferPtr thumbnailBuffer,                            unsigned long numberOfBytesToRead,                            Boolean firstRead,                            CmAsyncCompletionRoutinePtr asyncCompletionRoutine);pascal OSErr CmGetFullSizeImage(CameraData cameraData,                            unsigned short pictureNo,                            BufferPtr imageBuffer,                            unsigned long numberOfBytesToRead,                            Boolean firstRead,                            LongPtr actualBytes);pascal OSErr CmGetFullSizeImageAsync(CameraData cameraData,                            unsigned short pictureNo,                            BufferPtr imageBuffer,                            unsigned long numberOfBytesToRead,                            Boolean firstRead,                            CmAsyncCompletionRoutinePtr asyncCompletionRoutine);pascal OSErr CmTakePicture(CameraData cameraData,                             Boolean timerOn);pascal OSErr CmTakePictureAsync(CameraData cameraData,                             Boolean timerOn,                             CmAsyncCompletionRoutinePtr asyncCompletionRoutine);Result CodesnoErr    0    No error. kCmAIPError    -6201    An asynchronous operation is already in progress. Windows platform only. kCmAlreadyOpenError    -6202    The CM is already open.kCmANIPError    -6203    No asynchronous operation is outstanding. kCmBadArgError    -6204    Parameter is or contains an address of an invalid data item. kCmCameraError    -6200    Error detected by the camera. Call CmGetErrorInfo.kCmCameraNotFoundError    -6206    Device connected to the port is not a QuickTake 100 camera.kCmCantCancel        Currently outstanding asynchronous operation cannot be canceled. kCmCurrentlyConnectedError    -6205    The camera is already connected.kCmCommError    -6214    A serial communication error occurred.kCmDriverNotLoadedError    -6213    The camera device driver was not initialized.kCmNoMemoryError    -6209    System failed to allocate memory.kCmNotConnectedError    -6208    A connection with the camera has not been made. kCmNoSuchPortError    -6210    Corresponding port does not exist.kCmNotOpenError    -6211    The CM has not been initialized.kCmProtocolError    -6212    Protocol error during communication with a QuickTake 100 camera.kCmSystemError        Windows DLL failed to either register its class or to create a window. kNoPortErr    -7947    Corresponding port does not exist. kNoPodErr    -7937    Device connected to the port is not a QuickTake 100 camera.kSoftwareInstallErr    -7945    Either or both the GeoPort or Shared Library Manager extensions are not installed. Macintosh platform only. memFullErr    -108    Not enough memory to process the requested operation. Macintosh platform only. paramErr    -50    Parameter is or contains an address of an invalid data item. Macintosh platform only. QuickTake 100 ImagesThe information in this chapter applies to QuickTake 100 images on the Macintosh and Windows platforms. This chapter provides a brief description of the QuickTake 100 file format, information about the memory requirements for the display formats supported by the Macintosh and Windows image processing software, and information about the color depth of each display format. For information about how to display QuickTake 100 images in Windows applications, see Chapter 4, “Displaying QuickTake 100 Images in a Windows Application.” For information about how to display QuickTake 100 images in Macintosh applications, see Chapter 5, “Displaying QuickTake 100 Images in a Macintosh Application.”QuickTake 100 images are stored in the camera in a compressed format. You retrieve the compressed image data from the camera by making function calls to the QuickTake 100 device driver. The QuickTake 100 device driver loads the raw compressed image data from the camera into host memory. On the Windows platform, the image processing software provides function calls to decompress the raw image data in memory into a format that can be displayed on the host computer. On the Macintosh platform, a QuickTime decompressor provides the necessary image processing services. On the Macintosh platform, the QuickTake 100 files saved by the QuickTake 100 application contain a 512 byte header of application-specific data followed by an in-memory Macintosh PICT file and a QuickTake 100 thumbnail definition. QuickTake 100 files can be displayed on the Macintosh by taking all of the data in the file after the first 512 bytes and displaying that data with QuickDraw in the same way that a PICT file with a QuickTime compressed opcode is displayed. A sample code listing that shows how to use the QuickTake 100 device driver functions to retrieve raw image data from the QuickTake 100 camera is provided on page 2-5 in Chapter 2, “QuickTake 100 Driver Software.” QuickTake 100 Image SizesQuickTake 100 images are stored in three image resolutions: high-resolution, standard-resolution, and thumbnail. The amount of memory, in bytes, for three image resolutions in the output formats supported by the QuickTake 100 image processing software is shown in Table 3-1. Table 3-1    Memory sizes of supported QuickTake 100 image formats in bytes    Image format    High-resolution    Standard-resolution    Thumbnail        (640 x 480 pixels)    (320 x 240 pixels)    (80 x 60 pixels)    ADPCM compressed    115,200    28,800    n/a    Color difference    307,200    76,800    4800    Thumbnail compressed    n/a    n/a    2400    8-bit grayscale    307,200    76,800    n/a    24-bit DIB    921,600    230,400    n/a    32-bit RGB    1,228,800    307,200    n/aDIB (device-independent bitmap) is the native image format for Microsoft Windows. This array of RGB triples contains only the image data. It is the responsibility of the Windows application programmer to imbed the data in the proper bitmap format. Image Color DepthThe QuickTake 100 image processing software converts QuickTake 100 images into display-ready pictures with the color depth and display formats shown in Table 3-2. Table 3-2    Picture display formats and color resolutions    Display format    Bits per pixel    Colors    Operating-system support    Grayscale    8    256    Macintosh, MS Windows    DIB     24    16.7 million    Windows    RGB    32*    16.7 million    Macintosh* The 32-bits-per-pixel RGB format provides only 24 bits of color using the form NULL, Red, Green, Blue.Displaying QuickTake 100 Images in a Windows ApplicationThis chapter provides an overview of the technology used to process QuickTake 100 images for display with the Image Processing Module (IPM) in the Windows application environment. It also describes the data types and functions that are provided in the Windows IPM dynamic link library for the QuickTake 100 camera. This chapter does not attempt to teach Windows programming. You should be familiar with the software tools required to use the IPM DLL in the Windows programming environment.For information about how to display QuickTake 100 images in the Macintosh application environment, see Chapter 5, “Displaying QuickTake 100 Images in a Macintosh Application.” Using the Windows IPMImages are stored in the QuickTake 100 camera in a compressed format that cannot be readily displayed by the operating system. Therefore, it is necessary to decompress and convert the QuickTake 100 images into a data format that the operating system can display. The IPM DLL provides the functions that Windows applications call to decompress and convert QuickTake 100 images retrieved from the camera into a format that the operating system can display on the host computer. The IPM DLL for Windows is a collection of functions that convert QuickTake 100 camera images to display-ready RGB picture formats. The QuickTake 100 image processing software supports display of grayscale, RGB, and DIB output formats. The IPM supports differential pulse-code modulation (DPCM) decompression, edge enhancement, and color correction. The default color correction settings of a QuickTake 100 image can be overridden with the IPM software to accommodate different video display characteristics. In addition, IPM functions are provided for image rotation and for adjusting color output using camera-specific color characteristics.There are two fundamental methods that can be used for the QuickTake 100 image decompression and conversion process with the IPM: banded and unbanded. The banded method handles a user-specified strip of the image, while the unbanded method handles the complete image in memory. You may wish to try different band sizes to optimize the image conversion process for various system configurations. An image band is a full-width portion of an image that can begin with any line and extend to the height of the image. Banded image processing is provided for situations in which there is not enough memory on the host to process a full image or when only a full-width portion of the image is needed. An example of the latter case might be for redisplaying a portion of an image that was previously covered by another window. You can also use banded processing to display bands of a picture as they are processed to indicate progress to the user. NoteNoteWhen rotating an image using either the banded or unbanded image processing method, the full-color difference image must be resident in memory. Banded processing does not apply to thumbnail images.u Banded image processing is performed with the IpConvertADPCMtoRGB function. The portion of the image to process is specified with the aStartingLine and aLinesPerBand fields in the ImageAttribute data structure. The value of aStartingLine must be 0 or an even number, and aLinesPerBand must be an even number that is greater than or equal to 2. To process the full image with a single call (unbanded processing), set aStartingLine to 0 and aLinesPerBand to the total image height in pixels. The ImageAttribute data structure is shown here and further defined in “Data Types for the Windows IPM Functions” beginning on page 4-4. typedef struct imageAttribute { /* input */    unsigned short aImgWidth;    unsigned short aImgLength;                                        /* output image attributes */    IpPixelType                        aPixelType;    RotateAngle                        aAngle;    unsigned short                        aStartingLine;    unsigned short                        aLinesPerBand;    Boolean                         firstBand;    Boolean                         lastBand;}    ImageAttribute;The firstBand and lastBand fields in the ImageAttribute data structure can be used to optimize performance and to manage memory more efficiently. When firstBand is TRUE, the IPM allocates a color difference image (CDI) buffer as needed or reuses the buffer from a previously processed image. In either case, it decompresses the image to get the CDI. When firstBand is FALSE, it indexes into the existing CDI buffer, according to the value in the aStartingLine field, to process the requested band. NoteIn the Windows environment it is possible to have a CDI buffer for each application interested in using the IPM.u Table 4-1 shows how to use the firstBand and lastBand fields in the ImageAttribute data structure to process two images using the CDI buffer allocated for the first image. The first image is processed in three bands, and the second image is processed in the same CDI buffer in one band. Table 4-1    Memory and image band processing    Image    Band    firstBand    lastBand    Memory use and processing technique    1    1    TRUE    FALSE    Allocate the CDI working buffer, decompress the image, and generate the CDI. After processing, the CDI buffer is retained.     1    2    FALSE    FALSE    Previously allocated CDI buffer is used to process the second band. After processing, the CDI buffer is retained.    1    3    FALSE    FALSE    Previously allocated CDI buffer is used to process the third band. After processing, the CDI buffer is retained.    2    1    TRUE    TRUE    Previously allocated CDI buffer is used to process the requested band of the second image. After processing, the CDI buffer is deallocated (lastBand = True).  IPM Error HandlingAll IPM functions return a value either indicating successful completion or detailing a failure status. The include file ipm.h defines the values and mnemonics for these conditions. Errors also appear in the “Result Codes” section for each function description. Image Processing Module ReferenceThe following sections describe the data types and functions supported by the Image Processing Module. NoteThis information is provided to give Windows programmers an idea of how to use the QuickTake 100 image processing software that will be available sometime in 1994.u Data Types for the Windows IPM FunctionsThis section describes all of the data types referenced by the IPM functions. These declarations can be found in the ipm.h file. ImageAttributeThe ImageAttribute structure provides information about the size of the QuickTake 100 source image and defines the parameters to be used by the IPM for the image output. typedef struct imageAttribute { /* input */    unsigned short aImgWidth;    unsigned short aImgLength;    /* output image attributes */    IpPixelType                        aPixelType;    RotateAngle                        aAngle;    /* image banding parameters */    unsigned short                        aStartingLine;    unsigned short                        aLinesPerBand;    Boolean                         firstBand;    Boolean                         lastBand;}    ImageAttribute;Field descriptionsaImgWidth    Horizontal size of image, in pixels. aImgLength    Vertical size of image, in pixels. aPixelType    Color or gray; bits per pixel. kGray8 = 8-bit (256 levels of gray)kDIB24 = 24-bit (16 million colors) aAngle    Rotation angle of output image. See the RotateAngle structure described on page 4-6. aStartingLine    Starting line number of the output band. aLinesPerBand    Number of full-width lines in band. firstBand    Set to TRUE for first band of an image. lastBand    Set to TRUE for free working buffers. Be sure to set up the ImageAttribute structure to disable banded processing when decompressing thumbnail data. Both the aStartingLine and aLinesPerBand fields must be set to 0, or a call to IpConvertThumbnailToRGB will return a kCmBadArgError error. For more information about decompressing thumbnail image data, see the description of IpConvertThumbnailToRGB function on page 4-10. When you display a rotated image, set the aStartingLine and aLinesPerBand fields so that they refer to the entire rotated image. For example, a 320 by 240 image rotated either 90 degrees or 270 degrees will have a height of 320 lines when fully rotated. The span of the image will range from 0 to 320 during banded processing. The aImgWidth and aImgLength fields refer to the nonrotated image values. For more information about image processing, see the discussion of image processing starting on page 4-2 and the description of the IpConvertADPCMToRGB function on page 4-11. CharacteristicsThe Characteristics structure controls the CRT RGB display phosphor chromaticity values and CRT gamma. typedef struct characteristics {    XYChroma                    redChroma;    XYChroma                    greenChroma;    XYChroma                    blueChroma;    double                    gamma;}    Characteristics;Field descriptionsredChroma    Red phosphor chromaticity. greenChroma    Green phosphor chromaticity. blueChroma    Blue phosphor chromaticity. gamma    CRT gamma, color temperature in Kelvins. XYChromaThe XYChroma structure provides the CRT RGB display phosphor and white-point chromaticity x and y values. typedef struct xyChroma {     double             xChroma;     double             yChroma; }    XYChroma;Field descriptionsxChroma    Value for x chromaticity. yChroma    Value for y chromaticity. RotateAngleThe RotateAngle structure provides the values for rotating a QuickTake 100 image counterclockwise. typedef enum rotateAngle {                                        /* counterclockwise rotation */    kImgRot0   = 0,                                    /* 0-degree rotation */     kImgRot90  = 1,                                    /* 90-degree rotation */    kImgRot180 = 2,                                    /* 180-degree rotation */    kImgRot270 = 3                                    /* 270-degree rotation */} RotateAngle;Field descriptionsKImgRot0    Zero (0) degrees of rotation. kImgRot90    90 degrees of rotation. kImgRot180    180 degrees of rotation. kImgRot270    270 degrees of rotation. ProgressCallBackProgressCallBack is the prototype structure of an application progress callback function. typedef struct ProgressCallBack {    IpProgressProcPtr callBackProc;     long                         refcon;}    ProgressCallBack;Field descriptionscallBackProc    Application progress callback procedure.refcon    Reference constant. IPM Functions for Microsoft Windows ApplicationsThe IPM functions described in this section perform operations on the compressed image data that is retrieved from the QuickTake 100 camera. These functions convert compressed QuickTake 100 images into formats that can be displayed on computers capable of running Microsoft Windows. To use these functions, be sure to include the ipm.h file in the include section of your code. NoteAll parameter pointers are of type far unless otherwise noted. uNoteOn the Macintosh computer, QuickTake 100 images are converted into display-ready PICT format files by a QuickTake 100 QuickTime decompressor. Converted QuickTake 100 images are shown on the Macintosh display using the same techniques used to display PICT files with QuickTime or QuickDraw. uIpInitIPMOSErr FAR PASCAL IpInitIPM(unsigned char far * ipm);ipm    Address that will contain the IPM private data structures for the application. This area of memory must be allocated by the application before this function is called. Be sure this memory area has been cleared prior to calling IpInitIPM. The size of this memory area is defined by the constant kIPMContextSize. DESCRIPTIONThe IpInitIPM function initializes the IPM. This function must be called once before any other IPM routines are called. During the initialization process IPM fills in the image processing data structures with default settings for the camera matrix and display characteristics. However, the values are not actually set prior to a call to the IpCalculateColorTables function. Therefore, you must first call the IpInitIPM function and then call IpCalculateColorTables before any image processing can take place. If you change the settings for the default camera color matrix and display characteristics during a session with the IPM, those changes are not actually put to use until an IpCalculateColorTables function is called. RESULT CODESUpon successful completion, this function returns noErr and the IPM initializes the necessary internal data structures for use by subsequent function calls from the application. If an error is detected, this function returns one of the values listed here:kIpBadArgError        Parameter is or contains an address of an invalid data item.kIpContextExistsError        The memory referenced by the ipm parameter has already been allocated by a previous call to IpInitIPM. kIpNoMemoryError        System failed to allocate system memory. SEE ALSOIpEndIPM, described next; IpCalculateColorTables on page 4-9IpEndIPMOSErr FAR PASCAL IpEndIPM(unsigned char far * ipm);ipm    Address of the private storage for the IPM. See the definition of the IpInitIPM function on page 4-8 for more information about the ipm parameter. DESCRIPTIONThe IpEndIPM function closes the IPM and deallocates associated memory allocated with the IpInitIPM function. The IpEndIPM function should always be called before exiting the IPM. The application is responsible for disposing of any application memory associated with using the IPM.RESULT CODESThis function returns the value noErr upon successful completion.If an error is detected, this function returns one of these values:kIpBadArgError        Parameter is or contains an address of an invalid data item.kIpNoContextExistsError        This function was called without a previous call to IpInitIPM. SEE ALSOIpInitIPM on page 4-8IpCalculateColorTablesOSErr FAR PASCAL IpCalculateColorTables(unsigned char far * ipm);ipm    Pointer to the memory allocated for the IPM.DESCRIPTIONThe IpCalculateColorTables function calculates and initializes the color processing tables with the current camera color matrix and display characteristics. The camera color matrix and display characteristics are modified with the IpSetCameraColorMatrix and IpSetDisplayCharacteristics functions. You must call the IpCalculateColorTables function after initializing the IPM with IpInitIPM before attempting to process QuickTake 100 images. You can call IpSetDisplayCharacteristics and IpSetCameraColorMatrix followed by a single call to IpCalculateColorTables to calculate the new color tables. In addition, if you only need to calculate the color tables after changing the camera color matrix or calculate the display characteristics after changing the display characteristics, you can follow either IpSetDisplayCharacteristics or IpSetCameraColorMatrix with a call to IpCalculateColorTables. This is also true for the IpInitDisplayCharacteristics and IpInitCameraColorMatrix functions. RESULT CODESThis function returns noErr upon successful completion.If an error is detected, IpCalculateColorTables returns one of the values listed here:kIpBadArgError        Parameter is or contains an address of an invalid data item.kIpNoContextExistsError        The ipm parameter does not point to valid data.SEE ALSOIpInitIPM on page 4-8, IpSetDisplayCharacteristics on page 4-14,  IpInitDisplayCharacteristics on page 4-15, IpSetCameraColorMatrix on page 4-17, IpInitCameraColorMatrix, on page 4-17 IpConvertThumbnailToRGBOSErr FAR PASCAL IpConvertThumbnailToRGB(unsigned char far * ipm,                            unsigned char far * pCompedTNail,                            unsigned char far * pTNailRGB,                            ImageAttribute far * imgAttr);ipm    Pointer to the memory allocated for the IPM.pCompedTNailPointer to the compressed thumbnail image.pTNailRGB    Pointer to the output RGB image.imgAttr    Pointer to the ImageAttribute data structure that describes the image referenced in pCompedTNail. Banded image processing does not apply to thumbnail images. Be sure to set the aStartingLine and aLinesPerBand fields in the ImageAttribute structure to 0 when processing thumbnail images. DESCRIPTIONThe IpConvertThumbnailToRGB function decompresses a thumbnail image and prepares it for display as specified by the ImageAttribute data structure pointed to by the imgAttr parameter.RESULT CODESThis function returns noErr upon successful completion.If an error is detected, this function returns one of the values listed here:kIpBadArgError        Parameter is or contains an address of an invalid data item.kIpColorTablesNotCalculated        Color parameters were initialized or changed without calculating the derived color processing tables. You must call IpCalculateColorTables before image processing can take place.kIpNoContextExistsError        The ipm parameter does not point to valid data.kIpNoMemoryError        System failed to allocate memory. SEE ALSOIpInitIPM on page 4-8, IpCalculateColorTables on page 4-9IpConvertADPCMtoRGBOSErr FAR PASCAL IpConvertADPCMtoRGB(unsigned char far * ipm,                            unsigned char huge * pCompedCDI,                            unsigned char huge * pRGB,                             ImageAttribute far * imgAttr,                            ProgressCallBack far * callBackProc);ipm    Pointer to the memory allocated for the IPM. pCompedCDIPointer to the QuickTake 100 compressed color difference image.pRGB    Pointer to the RGB image output.imgAttr    Pointer to the ImageAttribute structure that describes the input and output images referenced by pCompedCDI and pRGB, respectively. When rotating images 90 or 270 degrees without using banded processing, the aLinesPerBand field in the ImageAttribute structure must be set to the rotated image height (either 640 for high-resolution images or 320 for standard-resolution images). When doing banded processing at 90 or 270 degrees, be sure to continue the process through the full rotated image height. callBackProcAddress of a callback procedure to receive progress status.DESCRIPTIONThe IpConvertADPCMtoRGB function decompresses an ADPCM QuickTake 100 image and converts it, as specified by the ImageAttribute structure, to a display-ready format. The image is color corrected for display (color IpPixelTypes only). The resulting image is stored at the address specified in the pRGB parameter. RESULT CODESThis function returns noErr upon successful completion.If an error is detected, this function returns one of the values listed here:kIpAppCancel        Operation has been canceled by the application.kIpBadArgError        Parameter is or contains an address of an invalid data item.kIpColorTablesNotCalculated        Color parameters were initialized or changed without calculating the derived color processing tables. You must call IpCalculateColorTables before image processing can take place.kIpNoContextExistsError        The ipm parameter does not point to valid data.kIpNoMemoryError        System failed to allocate memory. SEE ALSOIpProgressProc, described nextIpProgressProctypedef OSErr (FAR PASCAL *IpProgressProcPtr) (short message,                                        short percentComplete,                                        long refcon);  message    Indicates the reason for the call. Valid messages are IpProgressInit, IpProgressUpdate, and IpProgressEnd. The IpProgressInit and IpProgressEnd messages may be used to create and dismiss the application’s progress indicator display.percentCompleteFor messages of type IpProgressUpdate only, should be the percentage of completion for the currently executing IPM function. This value is an integer between 0 and 100.refcon    Reference constant specified by the application and returned to the given callback procedure. DESCRIPTIONThe IpProgressProc callback procedure prototype provides a way for applications to monitor the time it takes to convert a compressed QuickTake 100 image into a display-ready RGB format. When an application-supplied callback procedure is passed to the IpConvertADPCMtoRGB function, that callback procedure will be called periodically as the image is processed to provide a progress indicator to the application. The application may choose to filter the callback status to the desired level and return without providing any user feedback. RESULT CODESThis function returns noErr as long as the asynchronous operation is successful. If an error is detected during the operation, this function returns one of the values listed here:kIpBadArgError        The application received an invalid parameter.kIpCancel        The application wants to cancel the process. The IPM will discontinue its process and return the value kIpAppCancel. SEE ALSOIpConvertADPCMtoRGB on page 4-11IpGetDisplayCharacteristicsOSErr FAR PASCAL IpGetDisplayCharacteristics                                (unsigned char far * ipm,                                Characteristics far * characteristics);ipm    Pointer to the memory allocated for the IPM. characteristicsPointer to the Characteristics structure for the current display. For information about the values returned by this function, see the description of the Characteristics data structure on page 4-6. DESCRIPTIONThe IpGetDisplayCharacteristics function returns the current CRT display characteristics in the area pointed to by the characteristics parameter. RESULT CODESThis function returns noErr upon successful completion.If an error is detected, this function returns one of these values:kIpBadArgError        The application received an invalid parameter.kIpNoContextExistsError        The ipm parameter does not point to valid data.SEE ALSOIpSetDisplayCharacteristics, described next; IpInitDisplayCharacteristics on page 4-15IpSetDisplayCharacteristicsOSErr FAR PASCAL IpSetDisplayCharacteristics                                (unsigned char far * ipm,                                Characteristics far * characteristics);ipm    Pointer to the memory allocated for the IPM.characteristicsPointer to the new display characteristics structure. All supported display characteristics must be set when calling this function. You should retrieve the characteristics first, then modify them as necessary before passing them to this function.     This function supports the CRT chromaticities and gamma characteristics. For information about the values you can set with this function, see the description of the Characteristics structure on page 4-6. DESCRIPTIONThis function sets the values for a new color correction matrix using the given CRT display characteristics. It is used to customize the color processing of a QuickTake 100 image for accurate color reproduction on different display hardware. After calling IpSetDisplayCharacteristics, call the IpCalculateColorTables function to calculate and initialize the new display characteristics for subsequent image processing. The IpCalculateColorTables function is described on page 4-9. RESULT CODESThe IpSetDisplayCharacteristics function returns noErr upon successful completion.If an error is detected, this function returns one of the values listed here:kIpBadArgError        Parameter is or contains an address of an invalid data item.kIpNoContextExistsError        The ipm parameter does not point to valid data.SEE ALSOIpCalculateColorTables on page 4-9, IpGetDisplayCharacteristics on page 4-13, IpInitDisplayCharacteristics, described nextIpInitDisplayCharacteristicsOSErr FAR PASCAL IpInitDisplayCharacteristics                                (unsigned char far * ipm);ipm    Pointer to the memory allocated for the IPM.DESCRIPTIONThis function replaces the current CRT display characteristics and derived color processing tables with the default values shown in Table 4-2 and Table 4-3. After calling IpInitDisplayCharacteristics, make a call to the IpCalculateColorTables function to calculate and set the default display characteristics for subsequent image processing. The IpCalculateColorTables function is described on page 4-9. Table 4-2    Default CRT display characteristicsCharacteristic     X value    Y valueredChroma    0.640    0.330greenChroma    0.300    0.600blueChroma    0.150    0.060Table 4-3    Default CRT display gamma characteristicCharacteristic    Valuegamma    2.3RESULT CODESThe IpInitDisplayCharacteristics function returns noErr upon successful completion.If an error is detected, this function returns one of the values listed here:kIpBadArgError        Parameter is or contains an address of an invalid data item.kIpNoContextExistsError        The ipm parameter does not point to valid data.SEE ALSOCharacteristics data structure on page 4-6, IpCalculateColorTables on page 4-9, IpGetDisplayCharacteristics on page 4-13, IpSetDisplayCharacteristics on page 4-14IpGetCameraColorMatrixOSErr FAR PASCAL IpGetCameraColorMatrix(unsigned char far * ipm,                                        double far * cameraMatrix);ipm    Pointer to the memory allocated for the IPM. cameraMatrixAddress at which the current camera color matrix is returned.DESCRIPTIONThe IpGetCameraColorMatrix function returns the current camera color matrix in the user-specified location. The memory allocated to receive this information must be large enough to contain a 3-by-4 color matrix of type double. IMPORTANTSince the color matrix and image compression schemes in the camera may change in the future, it is always important to check the version number of the color matrix. You must make adjustments in your image processing setup, based on the version number of the color matrix in the camera as follows: If the color matrix in the camera is version 1, use the default color matrix in the Windows IPM and pass that matrix back to the IPM for image processing. If it is not version 1, pass the color matrix returned by the camera to the IPM for subsequent image processing. See the IpInitCameraColorMatrix function on page 4-17 for information about initializing the default color matrix in the IPM. RESULT CODESThe IpGetCameraColorMatrix function returns noErr upon successful completion.If an error is detected, it returns one of the values listed here:kIpBadArgError        Parameter is or contains an address of an invalid data item.kIpNoContextExistsError        The ipm parameter does not point to valid data.SEE ALSOIpSetCameraColorMatrix, described next; IpInitCameraColorMatrix on page 4-17IpSetCameraColorMatrixOSErr FAR PASCAL IpSetCameraColorMatrix(unsigned char far * ipm,                                    double far * cameraMatrix);ipm    Pointer to the memory allocated for the IPM. cameraMatrixAddress of the new 3-by-4 camera color matrix. DESCRIPTIONThe IpSetCameraColorMatrix function replaces values in the current camera color matrix with the user-supplied color tables in the cameraMatrix parameter. It is used to customize the color correction process to accommodate different display hardware and maintain compatibility with possible future changes in the color matrix used in the camera during the image capturing process. After calling IpSetCameraColorMatrix, call the IpCalculateColorTables function to calculate and initialize the new color matrix for subsequent image processing. The IpCalculateColorTables function is described on page 4-9. RESULT CODESThis function returns noErr upon successful completion.If an error is detected, IpSetCameraColorMatrix returns one of the values listed here:kIpBadArgError        Parameter is or contains an address of an invalid data item.kIpNoContextExistsError        The ipm parameter does not point to valid data.SEE ALSOIpCalculateColorTables on page 4-9, IpGetCameraColorMatrix on page 4-16, IpInitCameraColorMatrix, described nextIpInitCameraColorMatrixOSErr FAR PASCAL IpInitCameraColorMatrix(unsigned char far * ipm);ipm    Pointer to the memory allocated for the IPM. DESCRIPTIONThe IpInitCameraColorMatrix function replaces the current camera color matrix with default IPM color matrix values. After calling IpInitCameraColorMatrix, call the IpCalculateColorTables function to calculate and initialize the default color matrix for subsequent image processing. The IpCalculateColorTables function is described on page 4-9. RESULT CODESThe IpInitCameraColorMatrix function returns noErr upon successful completion and restores the default camera color matrix.If an error is detected, it returns one of the values listed here:kIpBadArgError        Parameter is or contains an address of an invalid data item.kIpNoContextExistsError        The ipm parameter does not point to valid data.SEE ALSOIpCalculateColorTables on page 4-9, IpGetCameraColorMatrix on page 4-16, IpSetCameraColorMatrix on page 4-17IpGetCompressionTableOSErr FAR PASCAL IpGetCompressionTable(unsigned char far * ipm,                                        unsigned char far * compTable);ipm    Pointer to the memory allocated for the IPM.compTable    Address in which to store the current compression table. DESCRIPTIONThe IpGetCompressionTable function returns the compression table currently in use by the IPM at the location specified with the compTable parameter. The compTable memory area must be large enough to contain the entire compression table, which is specified by the value of the constant kIpDecompTableSize (98 bytes). This function is useful when you want to ensure that the compression table you specified in an IpSetCompressionTable function call has been properly passed to the IPM. RESULT CODESThe IpGetCompressionTable function returns noErr upon successful completion.If an error is detected, IpGetCompressionTable returns one of the values listed here:kIpBadArgError        Parameter is or contains an address of an invalid data item.kIpNoContextExistsError        The ipm parameter does not point to valid data.SEE ALSOIpSetCompressionTable, described next; IpInitCompressionTable on page 4-9IpSetCompressionTableOSErr FAR PASCAL IpSetCompressionTable(unsigned char far * ipm,                                        unsigned char far * compTable);ipm    Pointer to the memory allocated for the IPM.compTable    Address of the new compression table. DESCRIPTIONThe IpSetCompressionTable function replaces the current compression table with the table specified by the compTable parameter. The compression table is retrieved from the camera with the CmGetDecompTable camera driver function, and it must be passed to the IPM unaltered to maintain image decompression compatibility with the associated images. Any time you start a new session with the QuickTake 100 camera, you should retrieve the compression table and set it so that the IPM can use the appropriate compression table when processing any images downloaded during that session. The CmGetDecompTable function allows an application to retrieve the current version of the compression table in the QuickTake 100 camera. It is described on page 2-45 in Chapter 2, “QuickTake 100 Driver Software.”RESULT CODESThe IpSetCompressionTable function returns noErr upon successful completion.If an error is detected, IpSetCompressionTable returns one of the values listed here:kIpBadArgError        Parameter is or contains an address of an invalid data item.kIpNoContextExistsError        The ipm parameter does not point to valid data.SEE ALSOCmGetDecompTable on page 2-45, IpGetCompressionTable on page 4-18, IpInitCompressionTable, described nextIpInitCompressionTableOSErr FAR PASCAL IpInitCompressionTable(unsigned char far * ipm);ipm    Pointer to the memory allocated for the IPM. DESCRIPTIONThe IpInitCompressionTable function replaces the current compression table with the default compression table values. A default compression table is stored within the IPM. You can check to see if the default compression table matches the current camera compression table by calling the IpInitCompressionTable function followed by a IpGetCompressionTable call to get the default compression table and then compare the default compression table to the table returned by a CmGetDecompTable function. RESULT CODESThis function returns noErr upon successful completion. If an error is detected, IpInitCompressionTable returns one of the values listed here:kIpBadArgError        Parameter is or contains an address of an invalid data item.kIpNoContextExistsError        The ipm parameter does not point to valid data.SEE ALSOCmGetDecompTable on page 2-45, IpGetCompressionTable on page 4-18, IpSetCompressionTable on page 4-19 C-Language Summary of the Image Processing ModuleConstantskIPMContextSize (4096)kIpDecompTableSize 98IpProgressInit 0IpProgressUpdate 1IpProgressEnd 2kGray8 = 0             /* 8-bit grayscale */kDIB24             /* 24-bit DIB BMP */kImgRot0   = 0,                        /*   0-degree rotation */kImgRot90  = 1,                        /*  90-degree rotation */kImgRot180 = 2,                        /* 180-degree rotation */kImgRot270 = 3                        /* 270-degree rotation */Data TypesImageAttributetypedef struct imageAttribute {                            /* image size */    unsigned short                        aImgWidth;    unsigned short                        aImgLength;                            /* output image attributes: */    IpPixelType                        aPixelType;    RotateAngle                        aAngle;                            /* image banding parameters */    unsigned short                        aStartingLine;    unsigned short                        aLinesPerBand;    Boolean                         firstBand;    Boolean                         lastBand;}    ImageAttribute;Characteristicstypedef struct characteristics {    XYChroma                    redChroma;    XYChroma                    greenChroma;    XYChroma                    blueChroma;    double                    gamma;} Characteristics; XYChromatypedef struct xyChroma {     double             xChroma;     double             yChroma; } XYChroma; RotateAngletypedef enum rotateAngle {                                        /* (counterclockwise rotation) */    kImgRot0   = 0,                                    /* 0-degree rotation */    kImgRot90  = 1,                                    /* 90-degree rotation */    kImgRot180 = 2,                                    /* 180-degree rotation */    kImgRot270 = 3                                    /* 270-degree rotation */} RotateAngle; FunctionsOSErr FAR PASCAL IpInitIPM                             (unsigned char far * ipm);OSErr FAR PASCAL IpEndIPM                             (unsigned char far * ipm);OSErr FAR PASCAL IpConvertThumbnailToRGB                            (unsigned char far * ipm,                             unsigned char huge * pCompedTNail,                              unsigned char huge * pTNailRGB,                             ImageAttribute far * imgAttr);typedef struct progressCallBack {    IpProgressProcPtr callBackProc;     long refcon;} ProgressCallBack; OSErr FAR PASCAL IpConvertADPCMtoRGB                            (unsigned char far * ipm,                             unsigned char huge * pCompedCDI,                             unsigned char huge * pRGB,                              ImageAttribute far * imgAttr,                             ProgressCallBack far * CallBackProc);OSErr FAR PASCAL IpGetDisplayCharacteristics                            (unsigned char far * ipm,                             Characteristics far * characteristics);OSErr FAR PASCAL IpSetDisplayCharacteristics                            (unsigned char far * ipm,                             Characteristics far * characteristics);OSErr FAR PASCAL IpInitDisplayCharacteristics                            (unsigned char far * ipm);OSErr FAR PASCAL IpGetCameraColorMatrix                            (unsigned char far * ipm,                             double far * cameraMatrix);OSErr FAR PASCAL IpSetCameraColorMatrix                            (unsigned char far * ipm,                             double far * cameraMatrix);OSErr FAR PASCAL IpInitCameraColorMatrix                            (unsigned char far * ipm);OSErr FAR PASCAL IpGetCompressionTable                            (unsigned char far * ipm,                             unsigned char far * compTable);OSErr FAR PASCAL IpSetCompressionTable                            (unsigned char far * ipm,                             unsigned char far * compTable); OSErr FAR PASCAL IpInitCompressionTable                            (unsigned char far * ipm); Result CodesnoErr        Operation was successful. kIpAppCancel        Operation canceled by the application. kIpBadArgError        Parameter is or contains an address of an invalid data item. kIpCancel        The application wants to cancel the process. The IPM will discontinue its process and return the value kIpAppCancel.KIpColorTablesNotCalculated        Color parameters were changed without calculating the derived color processing tables. Call IpCalculateColorTables before attempting to process another image. kIpContextExistsError        The IPM is already open. This error occurs when IpInitIPM is called twice without an intervening call to IpEndIPM. kIpNoContextExistsError        The ipm parameter does not point to valid data. kIpNoMemoryError        System failed to allocate memory. Displaying QuickTake 100 Images in a Macintosh ApplicationThis chapter describes the method used to display QuickTake 100 images with an application running in the Macintosh Operating System. The information presented here is for programmers who already understand how to use QuickTime, QuickTime Compressors, and QuickDraw to decompress and display picture files on the Macintosh computer. QuickTake 100 QuickTime DecompressorAs described in Chapter 3, images captured in the QuickTake 100 camera are stored in compressed format that must be decompressed and converted to a picture format that can be displayed by the host operating system. Images stored on the camera must be retrieved from the camera with the QuickTake 100 device driver functions, described in Chapter 2, before decompression and conversion operations can be performed. QuickTake 100 image processing support for the Macintosh Operating System is incorporated in a QuickTake 100 QuickTime decompressor. The QuickTake 100 QuickTime decompressor takes care of the details that would otherwise be associated with using the IPM functions to process the QuickTake 100 image data. Instead of manipulating the QuickTake 100 image data directly with the IPM functions, your application passes the QuickTake 100 image data along with an image description record that describes the image data to the QuickTake 100 QuickTime decompressor. The image description record is filled in with a file type of 'qktk', the height and width fields are set for the height and width of the image in pixels, and the dataSize field is set to the size of the compressed data in bytes. The QuickTake 100 decompressor then processes the data to create a Macintosh display-ready picture file. To show the pictures on the Macintosh display, you will need to understand how to use QuickTime, the Image Compression Manager, and QuickDraw in your application. You should also be familiar with the ImageAttribute data structure described on page 4-5. Refer to Chapter 3 of Inside Macintosh: QuickTime for information about the Image Compression Manager. QuickTake 100 images are converted into display-ready PICT format files by the QuickTake 100 QuickTime decompressor and the Image Compression Manager without your application having to call any of the IPM functions described in Chapter 4, “Displaying QuickTake 100 Images in a Windows Application.” Converted QuickTake 100 images are shown on the Macintosh display using the same techniques used to display PICT files with QuickTime or QuickDraw. QuickTake 100 Serial InterfaceThis appendix contains information about the QuickTake 100 serial interface and connector. The serial interface is used by host computers to both control the QuickTake 100 camera and retrieve data from the QuickTake 100 camera. Serial PortThe serial port on QuickTake 100 is located on the left side of the camera, as shown in Figure A-1.Figure A-1    QuickTake 100 serial port locationIt is an 8-pin mini-DIN socket with the physical pattern shown in Figure A-2. This is the same type of serial connector used on most Macintosh computers.Figure A-2    QuickTake 100 serial port physical patternProtocol, Transfer Rate, and Data FormatThe QuickTake 100 serial port supports Macintosh GeoPort high-speed serial communication protocols up to 920 kilobits per second (Kbps) and standard RS-232C serial protocols up to 57,600 bits per second (bps).  The GeoPort software built into the QuickTake 100 camera and the GeoPort system extension on the Macintosh computer take care of setting up the appropriate communication protocol and transfer rate for a serial connection. At system startup time, the GeoPort software performs what is called a beaconing phase. During the GeoPort beaconing phase many device-specific chores are attended to; one of these includes determining the fastest possible data transfer rate that can be supported by both QuickTake 100 and the Macintosh computer to which it is connected. For computers that support Microsoft Windows, the QuickTake 100 camera uses the RS-232C serial protocol with a default transfer rate of 9600 bps and a data format of 8 data bits, with 1 stop bit, and even parity. The QuickTake 100 software supports transfer rates of 9600, 19,200, 38,400, and 57,600 bps for the Windows platform. QuickTake 100 Serial Port Pin AssignmentsThe QuickTake 100 serial port conforms to RS-422 differential driver and receiver specifications and has the pin assignments described in Table A-1. Table A-1    Serial port pin assignments    Pin number    Signal name    Signal description    1    HSKo    Handshake output. This is the clock out signal on the QuickTake 100 camera and is not used by the RS-232C standard serial protocol.     2    HSKi    Handshake input. This is the reset in signal on the QuickTake 100 camera.    3    TxD–    Transmit data.    4    GND    Signal ground.    5    RxD–    Receive data.    6    TxD+    Transmit data (not used by standard serial protocol).    7    GPi    Not used.    8    RxD+    Receive data (not used by standard serial protocol).Serial CablesA serial cable for connecting the QuickTake 100 camera to Macintosh computers (a mini-DIN 8 to mini-DIN 8 twisted-pair cable configuration) and a serial cable for connecting computers that use a D-sub 9-pin connector are provided in the QuickTake 100 package (see Figure A-3 and Figure A-6). In addition, a D-sub 9-pin to D-sub 25-pin adapter is also provided (see Figure A-6). This section provides diagrams that show how the pins in those serial cables are connected to make the appropriate serial connection with a QuickTake 100 camera. To connect a Macintosh computer to the QuickTake 100 camera, use an Apple serial cable, part number M0197, or a cable with the pin and signal assignment connections shown in Figure A-4. Figure A-3    QuickTake 100-to-Macintosh serial cableFigure A-4    QuickTake 100-to-Macintosh serial cable pin assignmentsThe QuickTake 100-to-Macintosh cable is essentially a twisted-pair cable with the physical configuration shown in Figure A-5. Figure A-5    QuickTake 100-to-Macintosh twisted-pair cable configurationComputers, other than the Macintosh computer, that are capable of running Microsoft Windows use either D-sub 9-pin or D-sub 25-pin connectors conforming to the RS-232C specification. Figure A-6 shows the serial cable for connecting the QuickTake 100 mini-DIN 8-pin to a D-sub 9-pin connector and the adapter to connect the D-sub 9-pin cable end to a D-sub 25-pin RS-232C connector. Figure A-6    QuickTake 100 8-pin mini-DIN to RS-232C serial cable and adapterFigure A-7 shows how the pins and signals should be connected in a serial cable that connects the QuickTake 100 8-pin mini-DIN serial connector to an RS-232C D-sub 9-pin connector. The D-sub 9-pin to D-sub 25-pin adapter cable is a straight-through pin-to-pin configuration.Figure A-7    QuickTake 100 8-pin mini-DIN to D-sub 9-pin RS-232C serial cable pin assignmentsThe D-sub 9-pin end of the mini-DIN 8-pin to D-sub 9-pin cable has a female connector with the physical pinout shown in Figure A-8.Figure A-8    D-sub 9-pin physical pinout on a QuickTake 100 to D-sub 9-pin serial cableThe D-sub 9-pin end of a D-sub 9-pin to D-sub 25-pin RS-232C adapter cable has a male connector with the physical pinout shown in Figure A-9. Figure A-9    D-sub 9-pin physical pinout on a D-sub 9-pin to D-sub 25-pin adapter cableThe D-sub 25-pin end of a D-sub 9-pin to D-sub 25-pin RS-232C adapter cable has a female connector with the physical pinout shown in Figure A-10. Figure A-10    D-sub 25-pin physical pinout on a D-sub 9-pin to D-sub 25-pin adapter cableQuickTake 100 Camera SpecificationsThe specifications for the QuickTake 100 camera are listed in Table B-1. Table B-1    Venus specifications    Feature    Description    Absolute accuracy    ±0.5 pixel; any possible distortion is caused by the optical lens in front of the CCD sensor.     Color temperature    Flash operation 5500 kelvinsDaylight operation 6000 kelvins    Exposure     Automatic exposure adjustment    Exposure time    1/175 to 1/30 seconds    Flash    Capacitive discharge flash tube 7-second interval between flashes (new battery)Flash range 4 to 15 feet     Focus    Fixed; 4 feet to infinity    Image capture    Color CCD (charged couple device)    Image counter    Additive, 0 to 32 depending on image-resolution setting     Image compression    DPCM (differential pulse code modulated)     Image cycle time    5 seconds without flash    Image resolution    High-resolution image: 640H-by-480V-pixel resolution Standard-resolution image: 320H-by-240V-pixel resolution Thumbnail preview: 64H-by-48V-pixel resolution    Lens    5-element antireflective coated lens with a range of 4 feet to infinite with fixed focus equivalent focal length to 40 mm in a 35-mm camera.    Lens cover    Horizontal sliding cover, actuates camera power on switch.    Power source    Three 1.5 V AA batteries AC line adapter 4 to 8 volts at 1.5 amps120 V ± 10% 48Hz–62Hz (U.S.) 100, 120, 200, 220, 240 V ± 10% 48Hz–62Hz (international)    Self-timer    Built-in electronic type with LED indicator    Serial interface    RS-422 GeoPort high-speed serialRS-232C standard serial protocol    Serial transfer rate    9600 to 920 Kbps (Macintosh driver) 9600 to 57,600 bps (Windows driver)    Shutter    Programmable stepping motor drive, 2.8 to 16F, ± 0.5 EV accuracyIndexAapplication-defined routines2-33asynchronous camera operations, erasing images2-32asynchronous image retrieval2-60asynchronous retrieval of thumbnail images2-56asynchronous routines, canceling2-34Bbanded image processing4-2color difference image buffer4-4BufferPtr data type2-9Ccalculating the color tables4-9cameracapturing images2-63color correction matrix2-47, 4-16compression table2-45data types2-8 to 2-19default characteristics2-38default flash mode2-38default timeout2-38determining features2-36determining if connected2-52disconnecting2-28driver software for Macintosh platform1-3driver software for Windows platform1-4error category codes2-48error detail codes2-50 to 2-51establishing a connection2-3, 2-25factory settings2-38features1-4getting compression table2-45getting image information2-30getting information2-28image resolution1-2image types1-2owner name2-40picture types1-2product information2-37setting date and time2-39setting flash mode2-43setting owner name2-40setting picture mode2-41setting sleep mode2-44camera color matrix4-16camera connection functions2-22 to 2-28camera control functions2-28 to 2-53camera controls1-4 to 1-6erase all1-6flash1-5power on and off1-5resolution1-6shutter1-6timer1-6CameraData data type2-9camera data structures2-8 to 2-19camera device driver2-2asynchronous operations2-8closing2-21constants2-64data types2-8 to 2-19, 2-65 to 2-67defined2-2getting camera compression table2-45initializing2-3, 2-20opening2-3, 2-20using2-2camera device driver functions2-19 to 2-63errors2-2result code2-2camera errors2-48camera image retrieval functions2-54 to 2-61camera images2-30camera information2-37camera initialization functions2-20 to 2-22camera matrix4-8canceling asynchronous routines2-34capturing images1-2, 2-4capturing images asynchronously2-63Characteristics data type4-6, 4-22closing the camera connection2-4closing the camera device driver2-5, 2-21closing the Image Processing Module4-9CmAsyncCompletionRoutine function2-33 to 2-34CmCameraInfo data type2-14 to 2-17, 2-67CmCancelAsyncOperation function2-34 to 2-35CmCheckIfReady function2-52CmCloseDriver function2-5, 2-21CmColorMatrix data type2-19, 2-67CmConnect function2-3, 2-25 to 2-27CmDateAndTime data type2-12, 2-66CmDisconnect function2-4, 2-27 to 2-28CmDisposePortInfo function2-24 to 2-25CmErase function2-31CmGetCameraInfo function2-4, 2-28 to 2-29CmGetColorCorrectionMatrix function2-46 to 2-48CmGetDecompTable function2-45 to 2-46CmGetErrorInfo function2-48 to 2-52CmGetFullSizeImageAsync function2-60 to 2-61CmGetFullSizeImage function2-4, 2-57 to 2-60CmGetPictureInfo function2-4, 2-29 to 2-30CmGetPortInfo function2-3, 2-22 to 2-24CmGetProductInfo function2-37CmGetStdFeatures function2-35 to 2-36CmGetThumbnailImageAsync function2-56 to 2-57CmGetThumbnailImage function2-4, 2-54 to 2-56CmOpenDriver function2-3, 2-20CmPicture data type2-67CmPictureInfo data type2-18 to 2-19CmPortInfo data type2-10, 2-65CmPortInfo structure2-3CmProductInfo data type2-12, 2-66CmRestoreDefaults function2-38 to 2-39CmSelfTest function2-53CmSetDateAndTime function2-39 to 2-40CmSetFlashMode function2-42 to 2-43CmSetOwnerName function2-40 to 2-41CmSetPictureMode function2-41 to 2-42CmSetSleep function2-44 to 2-45CmStdFeatures data type2-10, 2-65CmTakePictureAsync function2-62 to 2-63CmTakePicture function2-4, 2-61 to 2-62color correction matrix2-47color correction tables4-17color difference image buffer4-3color processing tables4-15completion routine2-8application globals2-34compression table2-45determining4-18converting thumbnail images to RGB format4-10CRT chromaticity characteristics4-14Ddata transfer speed, determining2-26default compression table4-20determining the color correction matrix2-47device driver version number2-36device-independent bitmap3-3display characteristics4-8default values4-15determining4-13setting4-14display formats3-3DLLs (dynamic link libraries)2-2DLL version number2-36Eerasing images2-31erasing images asynchronously2-32erasing pictures1-6establishing a camera software connection2-3Ffile format, QuickTake 100 image file3-2flash mode2-43Ggamma characteristics4-14GeoPort protocolA-2getting camera compression table2-45getting camera information2-28getting camera status2-4getting color correction matrix2-47getting information about an image2-4getting product information2-37IImageAttribute data type4-3, 4-5, 4-21image capturing functions2-61 to 2-63image decompression, Windows platform4-2 to 4-4image processing, banded4-2Image Processing Module4-2 to 4-24calculating color tables4-9callback function4-12closing4-9converting images to RGB format4-12converting thumbnail images to RGB4-10determining display characteristics4-13functions4-7 to 4-20getting camera color correction matrix2-47getting current camera compression table2-45, 4-18initializing4-8opening4-8setting color matrix4-17setting default color matrix4-17setting default display characteristics4-15setting display characteristics4-14image resolutions3-2imagescolor depth3-3color format3-3converting to RGB format4-12default height2-38default size2-38default width2-38determining characteristics2-30erasing2-31memory size in bytes3-3retrieving2-58initializing default camera color matrix4-17initializing default compression table4-20initializing Image Processing Module4-8IpCalculateColorTables function4-9IpConvertADPCMtoRGB function4-11IpConvertThumbnailToRGB function4-10IpEndIPM function4-9IpGetCameraColorMatrix function4-16IpGetCompressionTable function4-18IpGetDisplayCharacteristics function4-13IpInitCameraColorMatrix function4-17IpInitCompressionTable function4-20IpInitDisplayCharacteristics function4-15IpInitIPM function4-8IPM data types4-4 to 4-7IpProgressProc callback function4-12IpSetCameraColorMatrix function4-17IpSetCompressionTable function4-19IpSetDisplayCharacteristics function4-14LLCD display indicatorsbattery power1-7pictures available1-7pictures taken1-7MMacintosh platform, QuickTake 100 software1-3Macintosh sample code for image retrieval2-5 to 2-7Pperforming asynchronous operations2-8PICT files5-2picture mode2-41picturesdisplaying on Macintosh platform5-2erasing2-31getting information2-30ProgressCallBack data type4-22ProgressCallBack IPM callback function4-7QQTAKE-D.INI file2-26QuickTake 100 camerafeatures1-4making a software connection2-3QuickTake 100 camera, defined1-2QuickTake 100 camera serial connectorA-2QuickTake 100 device driver2-2, 2-3QuickTake 100 file format, defined3-2QuickTake 100 QTAKE-D.INI file2-26QuickTake 100 QuickTime compressor1-2, 5-2QuickTime Image Compression Manager5-2Rrestoring default camera characteristics2-38retrieving device driver version number2-36retrieving images2-4, 2-58asynchronously2-60retrieving QuickTake 100 DLL version number2-36retrieving QuickTake 100 images2-5retrieving thumbnail images2-55, 2-56RotateAngle data type4-6, 4-22Ssample code2-5serial cablesA-3 to A-6serial communication, determining baud rate2-26serial data transfer rateMacintosh platformA-2setting, Windows2-26Windows platformA-2serial portA-2data formatsA-2making a connection2-26pin assignmentsA-2protocolsA-2transfer rateA-2setting camera color matrix4-17setting camera date and time2-39setting camera flash mode2-43setting camera owner name2-40setting camera picture mode2-41setting default display characteristics4-15setting display characteristics4-14setting image compression table4-19setting image resolution1-6setting sleep mode2-44sleep mode2-44Ttaking pictures1-6, 2-61 to 2-63asynchronously2-63with a timer1-6technical specificationsB-2thumbnail images1-2, 2-55, 2-56converting to RGB format4-10retrieving2-55retrieving asynchronously2-56Uuser features1-4 to 1-8Wcamera device driverfor Windows2-2Windows, setting the host data transfer rate2-26Windows platform, QuickTake 100 software1-4XXYChroma data type4-6, 4-22This Apple manual was written, edited, and composed on a desktop publishing system using Apple Macintosh computers and FrameMaker software. Line art was created using Adobe Illustrator™ and Adobe Photoshop™. Text type is Palatino® and display type is Helvetica®. Bullets are ITC Zapf Dingbats®. Some elements, such as program listings, are set in Apple Courier.WRITERSteve SchwanderDEVELOPMENTAL EDITORSLaurel Rezeau, Beverly ZegarskiILLUSTRATORSandee KarrPRODUCTION EDITORGerry GraySpecial thanks to Waymen Askey, Alex Crovetto, Paul Hangas, and Alex Pollayil≤@ˇ ˇˇˇˇ@
  2. ˇ·ˇ‚7^, Palatino.+∫0
  3. 4í∫Í
  4. °dONLNdˇˇ(ô∫Preliminary Draft    °dONLNdˇˇ*% Developer Prê°dONLNdˇˇ)5ess @0°dONLNdˇˇ)1/31/94°dONLNdˇˇ( ∫© $P°dONLNdˇˇ)    Apple ComputerZ†°dONLNdˇˇ)C, Inc. ûİdONLNdˇˇ)1994°dONLNdˇˇ(ä∫
  5. ˙H 4˚H  H
  6. ˇ·ˇ‚7^,     Helvetica
  7. °dONLNdˇˇ(¯HDeveloper Noteˇˇ≥>ˇ◊°dONLNdH.®*.QuickTºt°dONLNd¶.”)^ake 100 Digital Cameraˇ"f@ˇ ˇˇˇˇ@
  8. ˇ·ˇ‚7^
  9. 4⁄ú˙¯,     Helvetica.(ÔúDraft. PreliminaryVP):. ©bp)    1994Ù) §¿)Apple Computer¥0)6, Inc. ò–)2/1/944^*¿∫, Palatino
  10. °dONLNdZ*f1(c*°dONLNd\6er) Apple Computer>İdONLNd\reÇ)<, Inc.°dONLNdg*pC(n*© 1994 .İdONLNdgDpÄ)Apple Computer̰dONLNd,gpè);, Inc.°dONLNd3p*yP(w* All rights r˝Ä°dONLNd?pPyo)&    eserved. °dONLNdI{*Ñ•(Ç*#No part of this publication may be °dONLNdlÑ*ç-*    rÑİdONLNdmÑ-ç8)epr-°dONLNdpÑ9çd) oduced, storËİdONLNd|ÑdçÄ)+    ed in a r°°dONLNdÖÑÅçù)    etrieval °dONLNdéç*ñ≤(î*'system, or transmitted, in any form or °dONLNdµñ*üû*     by any means, mechanical, electréİdONLNd’ñûü∞)tonic, °dONLNd€ü*®b(¶*photocopying, rÔİdONLNdÍüb®p)8ecor¥°dONLNdÓüq®µ)ding, or otherwise, °dONLNd®*±™(Ø*$without prior written permission of °dONLNd&±*∫f*    Apple Computer>İdONLNd4±f∫v)<, Inc.°dONLNd;º*≈9(√*The òİdONLNd?º9≈†)Apple logo is a trademark of °dONLNd]≈*Œf(Ã*Apple Computer>İdONLNdk≈fŒx)<, Inc. °dONLNdsŒ*◊p(’*Use of the “keyboarùİdONLNdÜŒp◊z)Fd” 5°dONLNdâŒ{◊§) Apple logo °dONLNdî◊*‡è(fi*(Option-Shift-K) for commerêİdONLNdØ◊è‡ù)ecial °dONLNd¥‡*Èß(Á*#purposes without the prior written °dONLNd◊È*ÚP*     consent of LİdONLNd‚ÈPÚû)&Apple may constitute °dONLNd˜Ú*˚®(˘*"trademark infringement and unfair °dONLNd˚*¥*    (competition in violation of federal and °dONLNdA*N*     state laws.°dONLNdM*f* No licenses, exprúİdONLNd^f¢)<ess or implied, arX°dONLNdp£®)=e °dONLNdr*!](*granted with r`İdONLNdÄ]!£)3espect to any of the °dONLNdï!**•((*#technology described in this book. °dONLNd∏**3E*    Apple rÑİdONLNdø*E3ó)etains all intellectual pr °dONLNdŸ*ò3±)Soperty °dONLNd‡3*<Ø(:*&rights associated with the technology °dONLNd<*E®*    %described in this book. This book is °dONLNd+E*Nì*    intended to assist application °dONLNdJN*Wπ*    (developers to develop applications only °dONLNdrW*`6*    for eİdONLNdvW6`ú) Apple Macintosh computers.°dONLNdëd*mf(k*Apple Computer>İdONLNdüdfmv)<, Inc.°dONLNd¶m*v^(t*20525 Mariani >İdONLNd¥m^vd)4AªÄ°dONLNdµmcvx)venue°dONLNdªv*^(}*Cupertino, CA6İdONLNd»v^t)4 95014°dONLNdœ*àW(Ü* 408-996-1010°dONLNd‹å*ïQ* Apple, the MİdONLNdÁåQï|)' Apple logo, Ö°dONLNdÛå|ïó)+APDA, °dONLNd˘ï*ûû(ú*AppleLink, ColorSync, GeoPort, °dONLNdû*ßE*    LaserW-İdONLNdûEßT)riter≠°dONLNd#ûSß©), Macintosh, QuickDrawà°dONLNd9û©ß≠)V, °dONLNd;ß*∞D(Æ*QuickT°dONLNdAßD∞n) ake, QuickTKİdONLNdLßn∞∞)*ime, and System 7 °dONLNd^∞*π1(∑*arÑİdONLNd`∞1πj)e trademarks of £°dONLNdp∞jπ¶)9Apple ComputeraİdONLNd~∞¶π™)<, °dONLNdÄπ*¬>(¿*Inc., rkİdONLNdáπ>¬U)egister·°dONLNdéπU¬∂)ed in the United States and °dONLNd™¬*Àa(…*other countries.°dONLNdªÕ*÷g* Adobe IllustratorİdONLNdÃÕg÷ò)=, PostScript ar˝°dONLNd€Õó÷ú)0e °dONLNd›÷*fl](›*trademarks of …İdONLNdÎ÷]flï)3Adobe Systems °dONLNd˘fl*Ëí(Ê*Incorporated, which may be r>İdONLNdflìË™)iegister¥°dONLNdfl™Ë¥)ed °dONLNdË*Òz(Ô*in certain jurisdictions.°dONLNd9Û*¸k* CompuServe is a rÉİdONLNdJÛk¸Ç)Aegister˘°dONLNdQÛǸ≥)ed trademark °dONLNd^¸*r(*of CompuServe, Inc.°dONLNdr*™* $America Online is a service mark of °dONLNdñ*¢*    Quantum Computer Services, Inc.°dONLNd∂*$j* FrameMaker is a røÄ°dONLNd«j$Å)@egister5°dONLNdŒÇ$≥)ed trademark °dONLNd€$*-P(+*
  11. of Frame T4°dONLNdÂ$P-§)&echnology Corporation.°dONLNd¸/*8É(6*Helvetica and Palatino ar÷İdONLNd/É8ã)Ye r∞°dONLNd/å8£)    egister%İdONLNd/§8Æ)ed °dONLNd"8*A¢(?*trademarks of Linotype Company&°dONLNd@8¢A§)x.°dONLNdBC*L†(J*#Internet is a trademark of Digital °dONLNdeL*UÄ*    Equipment Corporation.°dONLNd|W*`* ITC Zapf Dingbats is a r]İdONLNdîW`ñ)Uegister”°dONLNdõWñ`†)ed °dONLNdû`*ié(g*trademark of International TΔ°dONLNd∫`éi´)dypeface °dONLNd¬i*rW(p* Corporation.°dONLNdœt*}:* MicrˆÄ°dONLNd”t:}U)osoft WϰdONLNd⁄tU}Ç)indows is a rıİdONLNdÁtÇ}ô)-egisterk°dONLNdÓtö}§)ed °dONLNdÒ}*Üj(Ñ*trademark of Micr'İdONLNd}kÜ´)Aosoft Corporation.°dONLNdà*ëá(è*NuBus ia a trademark of T√°dONLNd.àáëò)]exas °dONLNd3ë*ö:(ò*InstrÛ°dONLNd8ë:öV)uments.°dONLNd@ú*•π(£*'Simultaneously published in the United °dONLNdg•*Æm*    States and Canada.4^…¿Y°dONLNdz]…eB(c…$Even though Apple has reviewed this °dONLNdûf…n-*    manual, APPLE MAKES NO Wa@°dONLNd∂f-nR)dARRANTY °dONLNdæo…wˇ(u… OR REPRESENT{¿°dONLNd oˇw)6AI °dONLNdÀowW)TION, EITHER EXPRESS °dONLNd‡x…ÄO(~…!OR IMPLIED, WITH RESPECT TO THIS °dONLNdÅ…â*    MANUAL, ITS QUALITYf∞°dONLNdÅâH)S
  12. , ACCURACYõİdONLNdÅHâK),, °dONLNd ä…íÙ(ê…MERCHANT°dONLNd(äÙí)+ABILITY≠p°dONLNd/äíU), OR FITNESS FOR A[†°dONLNdAäVíW)F °dONLNdBì…õÕ(ô…PB°dONLNdCìÕõ◊)AR_†°dONLNdEì◊õ/)
  13. TICULAR PURPOSE. AS AÑê°dONLNdZì/õH)X RESUL‡°dONLNd`ìHõL)T†°dONLNdaìLõO), °dONLNdcú…§˝(¢… THIS MANUAL°dONLNdnú˛§N)5 IS SOLD “AS IS,” AND °dONLNdÑ•…≠X(´…!YOU, THE PURCHASER, ARE ASSUMING °dONLNd•Æ…∂Q*    "THE ENTIRE RISK AS TO ITS QUALITY °dONLNd«∑…ø*     AND ACCURACY0°dONLNd”∑ø)<.°dONLNd’ƒ…Ã( …IN NO EVENT WILLùp°dONLNdƒÃM)D APPLE BE LIABLE °dONLNdˆÕ…’ı(”…
  14. FOR DIRECTˇ@°dONLNd    ÕÙ’)+
  15. , INDIRECT °dONLNd    
  16. Õ’A)( , SPECIAL, °dONLNd    ÷…fiÌ(‹…INCIDENTÃİdONLNd    ÷ÌfiF)$AL, OR CONSEQUENTIALK°dONLNd    1÷GfiH)Z °dONLNd    2fl…Á(Â…DAMAGES RESUL)–°dONLNd    ?flÁF)?TING FROM ANY °dONLNd    MË…D(Ó…DEFECT OR INACCURACY IN THIS °dONLNd    jÒ…˘X*    +MANUAL, even if advised of the possibility °dONLNd    ï˙…ˇ*    of such damages.°dONLNd    ¶…‡*THE We†°dONLNd    ´‡O)ARRANTY AND REMEDIES SET °dONLNd    ƒ…◊(…FOR°dONLNd    «◊V)TH ABOVE ARE EXCLUSIVE AND IN °dONLNd    Â…!Ù(… LIEU OF ALLQ°dONLNd    ı!,), OTHERS, ORAL¸†°dONLNd    ˝,!:)7 OR °dONLNd
  17. "…*J((… WRITTEN, EXPRESS OR IMPLIED. No °dONLNd
  18. !+…3Ú*     Apple dealerÜ0°dONLNd
  19. -+Ú3:)), agent, or employee is °dONLNd
  20. E4…<+(:…authorized to make any modifi°dONLNd
  21. b4+<A)bcation, °dONLNd
  22. j=…EC(C…'extension, or addition to this warrantyÛ`°dONLNd
  23. ë=BEC)y.°dONLNd
  24. ìJ…RN(P…*Some states do not allow the exclusion or °dONLNd
  25. ΩS…[U*    .limitation of implied warranties or liability °dONLNd
  26. Î\…dU*    ,for incidental or consequential damages, so °dONLNd e…mO*    *the above limitation or exclusion may not °dONLNd An…vC*    &apply to you. This warranty gives you °dONLNd gw…›*    specifi¿°dONLNd nwfiT)&c legal rights, and you may also have °dONLNd îÄ…àO(Ü…,other rights which vary from state to state.4^h¿¯4∫h¿¯ˇ“@ˇ ˇˇˇˇ@
  27. ˇ·ˇ‚7^
  28. 4⁄∫˙, Palatino
  29. .Ñ`(‡ iii,     Helvetica(Ô∫Draft. PreliminaryVP):. ©bp)    1994Ù) §¿)Apple Computer¥0)6, Inc. ò–)2/1/944^H¿
  30. ^Hö4^Hö°dONLNd^∫w(p∫Contents
  31. ˇ·ˇ‚7^
  32. °dONLNd    ò∫§“*1FigurR¿°dONLNdò“§Ê)es, Tè °dONLNdò§6)ables, and Listings|@°dONLNd(òK§V)fvii
  33. ¬H…4√H… ƒHƒ
  34. ˇ·ˇ‚7^ °dONLNd,∂H¡m(æHPreface°dONLNd4≥∫¬‚)rAbout ∑@°dONLNd:≥‚¬)(    This Note
  35. õ‡°dONLNdEµ2¡:)Pix°dONLNdI…∫’(“∫Contents of This Notek‡°dONLNd`…/’4)ux°dONLNdb÷∫‚3(fl∫Supplementary Documents»¿°dONLNd{÷G‚L)çx°dONLNd}„∫Ôfi(Ï∫For Morß°dONLNdÑ„fiÔ)$e Information" °dONLNdì„/Ô7)Qxi°dONLNdñ∫¸¿(˘∫T∫¿°dONLNdóø¸4)ypographical Conventions%İdONLNd±I¸S)äxii
  36. ,H34-H3 .H.
  37. ˇ·ˇ‚7^ °dONLNdµ H+x((H    Chapter 1°dONLNdø∫,Z)rIntroduction to the QuickT4‡°dONLNdŸY,¿)üake 100 Camera
  38. ¨°dONLNdÈ‘+·){1-1°dONLNdÓ3∫?⁄(<∫QuickTÄİdONLNdÙ3⁄?)) ake 100 OverviewΔ‡°dONLNd3=?J)c1-2°dONLNd
  39. @∫L⁄(I∫QuickTÄİdONLNd@⁄LP) ake 100 Developer Softwar”¿°dONLNd)@PLT)veù`°dONLNd,@iLv)1-3°dONLNd0MƒYÚ(Vƒ    MacintoshÂİdONLNd;MY)B1-3°dONLNd?ZƒfŒ(cƒWÛ`°dONLNd@ZÕfÌ)    indows“`°dONLNdHZf)51-4°dONLNdLg∫s⁄(p∫QuickTÄİdONLNdRg⁄s) ake 100 Featur@İdONLNd`gs#)@esG °dONLNddg7sD)1-4°dONLNdhtƒÄÙ(}ƒ
  40. User Contr%¿°dONLNdrtıÄ)1ols¿†°dONLNdwtÄ") 1-4°dONLNd{ÅŒç(äŒPower On and Of.‡°dONLNdäÅç)NfÇ¿°dONLNdçÅ3ç@)1-4°dONLNdëéŒö(óŒ Flash Buttont`°dONLNdüéö')L1-5°dONLNd£õŒß(§ŒErase-All ButtonÔ`°dONLNdµõ+ß8)]1-6°dONLNdπ®Œ¥‘(±ŒT °dONLNd∫®‘¥) imer Button˚@°dONLNd«®¥))H1-6°dONLNdÀµŒ¡(æŒResolution Buttony¿°dONLNdfiµ2¡?)d1-6°dONLNd‚¬ŒŒ(ÀŒShutter ButtonG¿°dONLNdÚ¬#Œ0)U1-6°dONLNdˆœƒ€˝(ÿƒ LCD DisplayL@°dONLNdœ€)N1-7°dONLNd‹ŒË#(ÂŒBattery-Power IconÁ¿°dONLNd‹7ËD)i1-7°dONLNdÈŒıË(ÚŒPictur¿°dONLNd%ÈËı˙)es-TŰdONLNd)È˙ı9)aken Indicatory‡°dONLNd9ÈNı[)T1-7°dONLNd=ˆŒË(ˇŒPictur¿°dONLNdCˆË¸)es-A'İdONLNdGˆ¸I)vailable Indicator¶‡°dONLNd[ˆ]j)a1-7
  41. 2H943H9 4H4
  42. ˇ·ˇ‚7^ °dONLNd_&H1x(.H    Chapter 2°dONLNdi#∫2Ê)rQuickTGİdONLNdo#Â2{)+ake 100 Driver Software
  43. h °dONLNdà%è1ú)™2-1°dONLNdç9∫E⁄(B∫QuickTÄİdONLNdì9⁄Ei) ake 100 Device Driver Overview°dONLNd≥9~Eã)§2-2°dONLNd∑F∫R(O∫Using the QuickT´°dONLNd«FRl)Make 100 Driver SoftwarʰdONLNd›FlRp)ee؆°dONLNd‡FÖRí)2-3°dONLNd‰Sƒ_((\ƒInitializing the QuickT∫İdONLNd˚S'_à)cake 100 Device Driver›`°dONLNdSú_©)u2-3°dONLNd`ƒlC(iƒEstablishing a Connection Wò‡°dONLNd1`ClÑ)ith the Camera†°dONLNdA`ôl¶)V2-3°dONLNdEmƒyX(vƒCapturing and Retrieving Images°@°dONLNdfmlyy)®2-4°dONLNdjzƒÜP(ɃClosing the Camera ConnectionZ °dONLNdâzeÜr)°2-4°dONLNdçáƒì(êƒClosing the QuickTX†°dONLNdüáìz)Uake 100 Device Driver{İdONLNd∂áéìõ)u2-5°dONLNd∫î∫†l(ù∫&Sample Code for Retrieving an Image Frt@°dONLNd‡îl†Ø)≤om the CameraB`°dONLNdÔ—)X2-5°dONLNdÛ°∫≠fl(™∫AsynchrÎ`°dONLNd˙°fl≠-)%onous Operations¥¿°dONLNd °B≠O)c2-7°dONLNdÆ∫∫⁄(∑∫QuickTÄİdONLNdÆ⁄∫U) ake 100 Device Driver Refer}İdONLNd1ÆU∫h){enceR`°dONLNd7Æ}∫ä)(2-8ˇX@ˇ ˇˇˇˇ@
  44. ˇ·ˇ‚7^
  45. 4⁄*ˇ¯, Palatino
  46. .(·*iv,     Helvetica+rDraft. PreliminaryVP):. ©bp)    1994Ù) §¿)Apple Computer¥0)6, Inc. ò–)2/1/944^*¿¯
  47. °dONLNd\¶h√(e¶Data T:`°dONLNd\√h)ypes for the QuickTÏ °dONLNd\h®)Vake 100 Device Driver FunctionsİdONLNd:\Ωh )§2-8°dONLNd>i¶uΔ(r¶QuickTÄİdONLNdDiΔuU) ake 100 Device Driver Functions©‡°dONLNdeiiu{)£2-19°dONLNdjv∞ÇL(∞#Initializing and Closing the QuickT¢`°dONLNdçvKǨ)õake 100 Device Driver≈@°dONLNd§v¿Ç“)u2-20°dONLNd©É∞èÔ(å∞ Connecting Wg¿°dONLNdµÉÔè0)?ith the CameraËİdONLNd≈ÉDèV)U2-22°dONLNd ê∞ú…(ô∞ContrÂ@°dONLNdœê…ú)olling the Camera˘°dONLNd‚ê,ú>)c2-28°dONLNdÁù∞©D(¶∞Retrieving and Capturing Images°@°dONLNdùX©j)®2-54°dONLNd™ú∂?(≥ú C-Language Summary of the QuickTfi‡°dONLNd-™>∂ü)¢ake 100 Device Driver¿°dONLNdD™¥∂Δ)v2-64°dONLNdI∑∞√‹(¿∞    ConstantsưdONLNdT∑√)@2-64°dONLNdYƒ∞–Õ(Õ∞Data T:`°dONLNd_ƒÕ–·)ypes“@°dONLNdeƒı–)(2-65°dONLNdj—∞›fi(⁄∞
  48. Functions ÜİdONLNdv—Ú›)B2-68°dONLNd{fi∞ÍÍ(Á∞ Result Codesï`°dONLNdâfi˛Í)N2-71
  49. *!¯4*!¯ *¯
  50. ˇ·ˇ‚7^ °dONLNdé*Z(*    Chapter 3°dONLNdò ú»)rQuickTGİdONLNdû «*)+ake 100 Images
  51. fi`°dONLNdÆ>K)w3-1°dONLNd≥!ú-º(*úQuickTÄİdONLNdπ!º-) ake 100 Image Sizes@°dONLNdŒ!(-5)l3-2°dONLNd“.ú:Ò(7úImage Color DepthÖ°dONLNdÂ.:)i3-3 °dONLNdÈ^*iZ(f*    Chapter 4°dONLNdÛ[új )rDisplaying QuickT∫@°dONLNd[ jö)oake 100 Images in a Wfl@°dONLNd[öj…)èindows 
  52. z*ů4{*ů |*|¯
  53. ˇ·ˇ‚7^°dONLNd"kúz‡(vú Application
  54. ˆ@°dONLNd/mÙy)X4-1°dONLNd4Åúç”(äú Using the W‡°dONLNd?Ŕ砠  )7
  55. indows IPMZ@°dONLNdKÅç*)J4-2°dONLNdOé¶ö…(ó¶IPM Err∞¿°dONLNdVé…öˇ)# or Handling†°dONLNdcéö!)K4-4°dONLNdgõú߃(§úImage PrY‡°dONLNdoõƒß()(ocessing Module Refer‡°dONLNdÑõ(ß;)dence∫¿°dONLNdäõPß])(4-4°dONLNdé®¶¥√(±¶Data T:`°dONLNdî®√¥)ypes for the W_°dONLNd¢®¥g)@indows IPM Functions°‡°dONLNd∏®{¥à)x4-4°dONLNdºµ¶¡(æ¶IPM Functions for Micr≤¿°dONLNd“µ¡/)gosoft Wd`°dONLNdŸµ/¡R)"indows e°dONLNd‡µR¡ä)# Applications  °dONLNdÓµü¡¨)M4-7°dONLNdÚ¬úŒF(Àú"C-Language Summary of the Image Pr∏@°dONLNd¬FŒê)™ocessing Modulej °dONLNd%¬•Œ∑)_4-21°dONLNd*œ∞€‹(ÿ∞    ConstantsưdONLNd5œ€)@4-21°dONLNd:‹∞ËÕ(Â∞Data T:`°dONLNd@‹ÕË·)ypes“@°dONLNdF‹ıË)(4-21°dONLNdKÈ∞ı€(Ú∞    FunctionsİdONLNdVÈı)@4-22°dONLNd[ˆ∞Í(ˇ∞ Result Codesï`°dONLNdiˆ˛)N4-24 °dONLNdn&*1Z(.*    Chapter 5°dONLNdx#ú2 )rDisplaying QuickT∫@°dONLNdâ# 2–)oake 100 Images in a Macintosh 
  56. B*I¯4C*I¯ D*D¯
  57. ˇ·ˇ‚7^°dONLNd©3úB‡(>ú Application
  58. ˆ@°dONLNd∂5ÙA)X5-1°dONLNdªIúUº(RúQuickTÄİdONLNd¡IºU) ake 100 QuickT8 °dONLNdœIU<)D ime DecomprE‡°dONLNd⁄I<UR)<essorÒ†°dONLNd·IfUs)*5-2
  59. Ö*å¯4Ü*寠á*á¯
  60. ˇ·ˇ‚7^ °dONLNdÂy*ÑZ(Å*    Appendix “0°dONLNdÓyZÑa)0A°dONLNdvúÖ»)BQuickTGİdONLNdˆv«ÖZ)+ake 100 Serial Interface
  61. †°dONLNdxoÑ)®A-1°dONLNdåúò (ïú Serial Portć°dONLNd"åfiòÓ)BA-1°dONLNd&ô¶•Ø(¢¶PrN†°dONLNd(ô∞•÷)
  62.     otocol, Tч°dONLNd1ô’•Z)%ransfer Rate, and Data Format `°dONLNdPôn•~)ôA-2°dONLNdT¶¶≤Δ(ضQuickTÄİdONLNdZ¶Δ≤+) ake 100 Serial Port Pin ? °dONLNdr¶+≤d)e Assignments∑†°dONLNd¶x≤à)MA-2°dONLNdÉ≥úø‘(ºúSerial CablesZ`°dONLNdí≥Èø˘)MA-3ˇ@ˇ ˇˇˇˇ@
  63. ˇ·ˇ‚7^
  64. 4⁄∫˙, Palatino
  65. .‡(‡v,     Helvetica(Ô∫Draft. PreliminaryVP):. ©bp)    1994Ù) §¿)Apple Computer¥0)6, Inc. ò–)2/1/944^H¿
  66. kHr4lHr mHm
  67. ˇ·ˇ‚7^ °dONLNd_HjÄ(gH
  68. Appendix B°dONLNd \∫kÊ)rQuickTGİdONLNd\Âkz)+ake 100 Camera Specifi•°dONLNd'\zk¶)ïcations
  69. ˝@°dONLNd0^∫j»)@B-1ˇ
  70. @ˇ ˇˇˇˇ@
  71. ˇ·ˇ‚7^
  72. 4⁄*ˇ¯, Palatino
  73. .(·*vi,     Helvetica+rDraft. PreliminaryVP):. ©bp)    1994Ù) §¿)Apple Computer¥0)6, Inc. ò–)2/1/944^*¿¯ˇû@ˇ ˇˇˇˇ@
  74. ˇ·ˇ‚7^
  75. 4⁄∫˙, Palatino
  76. .I (‡
  77. vii,     Helvetica(Ô∫Draft. PreliminaryVP):. ©bp)    1994Ù) §¿)Apple Computer¥0)6, Inc. ò–)2/1/944^H¿ˇˇ—Úˇ◊°dONLNd[∫o‰(j∫Figur{z°dONLNd[‰o)*es, T5°dONLNd
  78. [oñ)"ables, and Listings
  79. ®HÆ4©HÆ ™∫™
  80. ˇ·ˇ‚7^
  81. °dONLNdúH®s(•H    Chapter 1 °dONLNd(ù∫®7)rIntroduction to the QuickT;†°dONLNdBù7®à)}ake 100 Camera    éİdONLNdRùö®ß)c1-1°dONLNdW±∫º‰(π∫
  82. Figure 1-1°dONLNdb±º$)NQuickT@°dONLNdh±$º¿)'ake 100 lens cover in the open positionê°dONLNd뱓ºfl)Æ1-5°dONLNdïΩ∫»‰(≈∫
  83. Figure 1-2°dONLNd†Ω»$)NQuickT@°dONLNd¶Ω$»‹)-ake 100 LCD display and user control buttons 冰dONLNd’ΩÓ»˚) 1-5°dONLNdŸ…∫‘‰(—∫
  84. Figure 1-3°dONLNd‰…‘h)NRear view of the QuickTÇİdONLNd˚…g‘ß)_ake 100 camera†°dONLNd …∫‘«)S1-7
  85. ¯H˛4˘H˛ ˙∫˙
  86. ˇ·ˇ‚7^
  87. °dONLNdÏH¯s(ıH    Chapter 2 °dONLNdÌ∫¯‹)rQuickT °dONLNdÌ‹¯Q)"ake 100 Driver Software    İdONLNd8Ìd¯q)à2-1°dONLNd=∫ ·(    ∫    Table 2-1,
  88. Courier.°dONLNdG q)NCmSetSleep sleepDelay°dONLNd\q π)i parameter values°dONLNdoÀ ›)Z2-44.°dONLNdt∫·(∫    Table 2-2°dONLNd~$)NQuickT@°dONLNdÑ$˚)4ake 100 driver error category codes, mnemonics, and °dONLNd∏"(defi†°dONLNdº"1)nitions–°dONLNd≈C"U),2-49°dONLNd #∫.·(+∫    Table 2-3°dONLNd‘#.$)NQuickT@°dONLNd⁄#$. )9ake 100 device driver error detail codes, mnemonics, and °dONLNd-8(5defi†°dONLNd-83)nitions Ç°dONLNd!-E8W).2-50°dONLNd&E∫PÊ(M∫ Listing 2-1°dONLNd2EP)N@Using the device driver functions to retrieve an image from the °dONLNdrOZ$*
  89. QuickT@°dONLNdxO$Zd)ake 100 cameraÑ`°dONLNdàOvZÉ)R2-5
  90. ~HÑ4HÑ Ä∫Ä
  91. ˇ·ˇ‚7^
  92. °dONLNdårH~s({H    Chapter 3 °dONLNdñs∫~‹)rQuickT °dONLNdús‹~*)"ake 100 Images    d°dONLNd¨s<~I)`3-1°dONLNd±á∫í·(è∫    Table 3-1°dONLNdªáíì)N Memory sizes of supported QuickTÉ0°dONLNd€áíí˘)äake 100 image formats in °dONLNdÙëú(ôbytes¿°dONLNd˚ë0ú=)(3-3°dONLNdˇù∫®·(•∫    Table 3-2°dONLNd    ù®∏)N-Picture display formats and color resolutions°dONLNd8ùÀ®ÿ)√3-3
  93. ÃH“4ÕH“ Œ∫Œ
  94. ˇ·ˇ‚7^
  95. °dONLNd<¿HÃs(…H    Chapter 4 °dONLNdF¡∫Ã)rDisplaying QuickTÎİdONLNdW¡ÃÅ)Wake 100 Images in a Wl@°dONLNdl¡ÇÃß)qindows ê°dONLNds¡ßË)% Application    Ì∞°dONLNdÄ¡ÓÃ˚)G4-1°dONLNdÖ’∫‡·(›∫    Table 4-1°dONLNdè’‡ô)N Memory and image band processing`°dONLNd±’¨‡π)§4-4°dONLNdµ·∫Ï·(È∫    Table 4-2°dONLNdø·Ï4)N
  96. Default CRW°dONLNd…·4Ï9),T≠P°dONLNd ·9Ïì) display characteristics. °dONLNd‰·¶Ï∏)m4-15°dONLNdÈÌ∫¯·(ı∫    Table 4-3°dONLNdÛ̯4)N
  97. Default CRW°dONLNd˝Ì4¯9),T≠P°dONLNd˛Ì9¯Ø) display gamma characteristic.°dONLNd̬¯‘)â4-15
  98. H"4H" ∫
  99. ˇ·ˇ‚7^
  100. °dONLNd"Ht(H    Appendix i‡°dONLNd+tz),A °dONLNd-∫‹)FQuickT °dONLNd3‹P)"ake 100 Serial Interface    L¿°dONLNdMbp)ÜA-1°dONLNdR%∫0Ê(-∫
  101. Figure A-1°dONLNd]%0$)NQuickT@°dONLNdc%$0è)ake 100 serial port locationÜ0°dONLNdÅ%°0Ø)}A-1°dONLNdÖ1∫<Ê(9∫
  102. Figure A-2°dONLNdê1<$)NQuickT@°dONLNdñ1$<Ø)$ake 100 serial port physical patternáê°dONLNdº1¡<œ)ùA-1°dONLNd¿=∫HÊ(E∫
  103. Figure A-3°dONLNdÀ=H$)NQuickT@°dONLNd—=$H™)!ake 100-to-Macintosh serial cableÖ°dONLNdÙ=ºH )òA-3°dONLNd¯I∫TÊ(Q∫
  104. Figure A-4°dONLNdIT$)NQuickT@°dONLNd    I$TÓ)1ake 100-to-Macintosh serial cable pin assignmentsp°dONLNd<IT)‹A-3°dONLNd@U∫`Ê(]∫
  105. Figure A-5°dONLNdKU`$)NQuickT@°dONLNdQU$`≈)(ake 100-to-Macintosh twisted-pair cable °dONLNdy_j(gconfiņ°dONLNd~_j;)guration–°dONLNdà_Nj\)3A-4°dONLNdåk∫vÊ(s∫
  106. Figure A-6°dONLNdókv$)NQuickT@°dONLNdùk$vı)3ake 100 8-pin mini-DIN to RS-232C serial cable and °dONLNd–uÄ&(}adapter‡°dONLNdŸu9ÄG)1A-4°dONLNd›Å∫åÊ(â∫
  107. Figure A-7°dONLNdËÅå$)NQuickT@°dONLNdÓÅ$å);ake 100 8-pin mini-DIN to D-sub 9-pin RS-232C serial cable °dONLNd)ãñI(ìpin assignmentsÉ@°dONLNd:ã[ñi)SA-5°dONLNd>ó∫¢Ê(ü∫
  108. Figure A-8°dONLNdIó¢ß)N'D-sub 9-pin physical pinout on a QuickT@°dONLNdpóߢ)üake 100 to D-sub 9-pin °dONLNdá°¨5(© serial cable–°dONLNdï°H¨V)@A-5ˇÓ@ˇ ˇˇˇˇ@
  109. ˇ·ˇ‚7^
  110. 4⁄*ˇ¯, Palatino
  111. .(·*viii,     Helvetica+rDraft. PreliminaryVP):. ©bp)    1994Ù) §¿)Apple Computer¥0)6, Inc. ò–)2/1/944^*¿¯    °dONLNd\úg»(dú
  112. Figure A-9°dONLNd \Ígfi)N=D-sub 9-pin physical pinout on a D-sub 9-pin to D-sub 25-pin °dONLNdHfÍq *
  113. adapter cable¿°dONLNdWf3qA)IA-6°dONLNd[rú}Õ(zú Figure A-10°dONLNdgrÍ}„)N>D-sub 25-pin physical pinout on a D-sub 9-pin to D-sub 25-pin °dONLNd•|Íá *
  114. adapter cable¿°dONLNd¥|3áA)IA-6°dONLNd∏îúüƒ(úú    Table A-1°dONLNd¬îÍüV)NSerial port pin assignments†°dONLNdflîiüw)A-2
  115. √*…¯4ƒ*…¯ ≈ú≈¯
  116. ˇ·ˇ‚7^
  117. °dONLNd„∑*√](¿*
  118. Appendix B °dONLNdÓ∏ú√æ)rQuickT °dONLNdÙ∏æ√3)"ake 100 Camera SpecifiÉŰdONLNd
  119. ∏3√U)ucations    ]·°dONLNd∏h√v)5B-1°dONLNdÃú◊ƒ(‘ú    Table B-1°dONLNd"ÃÍ◊)NV0°dONLNd#Ã◊) enus specifiÖ∞°dONLNd/Ã◊;)/cationsê°dONLNd8ÃN◊\)/B-2ˇt@ˇ ˇˇˇˇ@
  120. ˇ·ˇ‚7^
  121. 4⁄∫˙, Palatino
  122. ., (·ix    3, Ã(#∫PREFN )3ACE 4^H¿
  123. vHú4vHú óHó
  124. ˇ·ˇ‚7^ˇˇ¬òˇ◊°dONLNd\∫ug(n∫About This Note
  125. °dONLNdú∫®%*7This developer note defiŒ°dONLNd*ú%®g)knes the QuickTɇ°dONLNd8úg®´)Bake 100 softwarA`°dONLNdGú¨®Î)Ee components °dONLNdT©∫µ√(≤∫prG °dONLNdV©ƒµ0)
  126. ovided for developers crl °dONLNdn©0µ±)leating applications for either îİdONLNd穱µˇ)ÅApple Macintosh °dONLNdù∂∫¬\(ø∫#computers or computers capable of rπ`°dONLNd¿∂\¬ì)¢ unning Micrø°dONLNdÀ∂쬵)7osoft Wp†°dONLNd“∂µ¬Ó)" indows. The °dONLNdfi√∫œ⁄(Ã∫QuickTÄİdONLNd‰√⁄œ) ake 100 softwar>°dONLNdÛ√œg)Ee components arÈ¿°dONLNd√gœÙ)H!e in the form of two application °dONLNd#–∫‹√(Ÿ∫prG °dONLNd%–ƒ‹u)
  127. $ogramming interfaces (APIs)—a QuickTG°dONLNdI–u‹ )±!ake 100 camera device driver and °dONLNdj›∫ÈÔ(Ê∫ an Image Pr´@°dONLNdu›ÔÈZ)5ocessing Module (IPM). °dONLNdçÔ∫˚+(¯∫The device driver softwar'†°dONLNd¶Ô,˚=)re pr8`°dONLNd™Ô=˚s) ovides contrù`°dONLNd∂Ôs˚”)6ol services for QuickT6İdONLNdÃÔ”˚)`ake 100 digital °dONLNd‹¸∫X(∫!computer camera. The camera contr<‡°dONLNd˝¸YÖ)ü
  128. ol softwarİdONLNd¸Öü),e is pr5†°dONLNd¸†)ovided as a device driver °dONLNd(    ∫(∫and associated glue fi≤°dONLNd>    )_4les for Macintosh computers and as a driver dynamic °dONLNdr∫"/(∫link library (DLL) for Micri`°dONLNdç/"Q)uosoft W°dONLNdîQ")"(indows. The function names used for the °dONLNdº#∫/⁄(,∫QuickTÄİdONLNd¬#⁄/à) 'ake 100 driver interface and the QuickTC†°dONLNdÈ#à/ø)Æ ake 100 DLL2¿°dONLNdÙ#ø/Û)7 interface ar=‡°dONLNd#Û/˙)4e °dONLNd0∫<g(9∫&identical for both the Macintosh and W¿°dONLNd)0g<Õ)≠indows platforms. The I°dONLNd?0Õ<)fAPIs for the °dONLNdL=∫I1(F∫IPM strictly apply to the WÊ@°dONLNdg=1IÄ)windows platform. °dONLNdyO∫[⁄(X∫QuickTÄİdONLNdO⁄[$) ake 100 image pr5İdONLNdèO%[n)Kocessing softwaråİdONLNdüOn[ú)I    e decompr<`°dONLNd®Où[)/esses the image data that °dONLNd¬\∫h(e∫makes up a QuickTsİdONLNd”\h√)U*ake 100 digital image once that data is pr©@°dONLNd˝\√h)¥esent on the host °dONLNdi∫u‰(r∫computerÑ@°dONLNdi‰u)*
  129. . Image prV†°dONLNd!iu™)-!ocessing is performed by a QuickT†°dONLNdBi™u‰)ô ime decomprɇ°dONLNdMi‰u˝):essor °dONLNdSv∫Ç¥(∫3component on the Macintosh computer and by a QuickT؇°dONLNdÜv≥Ç)˘ake 100 IPM dynamic °dONLNdöÉ∫è(å∫link library for MicrL‡°dONLNdØÉè4)Xosoft W˛Ä°dONLNd∂É3èë)!indows applications. °dONLNdÃï∫°=(û∫This note assumes that you ar̰dONLNdÈï=°P)Ée alr‰°dONLNdÓïP°√)eady familiar with the harÛ°dONLNdï√°⁄)sdwar*¿°dONLNd ı)e and °dONLNd¢∫Æ€(´∫softwar‰¿°dONLNd¢€Æ˜)!=e technology of Macintosh computers and computers capable of °dONLNdVØ∫ªΩ(∏∫r^†°dONLNdWØæªı) unning Micrd@°dONLNdbØıª)7osoft W‡°dONLNdiت[)"indows softwarŸ†°dONLNdwØ[ªä)D e. If you ar&`°dONLNdÉØãª )0e unfamiliar with Macintosh °dONLNdüº∫»€(≈∫softwar‰¿°dONLNd¶º€»)!    e and har1‡°dONLNdغ»)*dwari†°dONLNd≥º»œ))e, you may want to obtain copies of the r†°dONLNd‹º–»Ì)¥elated °dONLNd„…∫’2(“∫technical manuals listed in ° °dONLNdˇ…2’∑)x“Supplementary Documents,”i‡°dONLNd…∏’¯)Ü later in this pr
  130. ‡°dONLNd*…˘’)Aeface. °dONLNd2€∫Á(‰∫LWhile every attempt has been made to verify the accuracy of the information °dONLNd~Ë∫Ù√*prG °dONLNdÄ˃Ù)
  131. Iesented, it is subject to change without notice. This developer note may °dONLNd…ı∫<(˛∫contain information or specifiD‡°dONLNdÁı={)Écations that ar~‡°dONLNdˆı{˛)>e still under consideration by °dONLNd∫( ∫Apple Computer(İdONLNd#G)K. The primary r‹ °dONLNd2Gu)B eason for r™†°dONLNd=v¶)/ eleasing prÛ@°dONLNdH¶›)0 eliminary pr‰@°dONLNdT›¯)7oduct °dONLNdZ∫(∫information is to pr_¿°dONLNdnÈ)V/ovide the developer community with essential prƒ@°dONLNdùÈ)Ÿoduct °dONLNd£∫(÷(%∫specifiÓ °dONLNd™÷()cations, theory≈‡°dONLNdπ(Î)@1, and application information for the purpose of °dONLNdÍ)∫5Z(2∫#stimulating work on compatible thir≠°dONLNd)Z5á)†
  132. d-party pr*°dONLNd)à5™).oducts. 
  133. CHQ4DHQ,     Helvetica    °dONLNd B∫MÕ(J∫Note
  134. ˇ·ˇ‚7^
  135. °dONLNd%O∫[ı*Information rˆÄ°dONLNd2Oı[);egar@°dONLNd6O    [))ding Wl@°dONLNd<O)[™) indows development softwar†°dONLNdVO´[—)Ç
  136. e for the °dONLNd`[∫g⁄(d∫QuickTÄİdONLNdf[⁄g˝) Cake 100 camera is supplied in this note to give developers an idea °dONLNd©g∫sÃ(p∫Bof the capabilities of the tools that will soon be available for WdONLNdÎgÃsÔ(pÃindows °dONLNdÚs∫√(|∫prG °dONLNdÙsƒ˘)
  137.  
  138. ogrammers.,Zapf Dingbats_†°dONLNdˇv˛~):uˇ(@ˇ ˇˇˇˇ@
  139. ˇ·ˇ‚7^
  140. 4⁄*˙¯, Palatino
  141. .(·*x    3, Ã(#úPREFN )3ACE 4^*¿¯
  142. ^*x¯4^*x¯
  143. à*ê¯4â*ꯠä*ä˛
  144. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNdu*à«(É*Contents of This NoteˇˇˇˇˇˇV˛(É0
  145. °dONLNdôú•?(¢ú%This developer note is divided into fiìİdONLNd=ô?•î)£ve chapters and thr»†°dONLNdPôî•’)Uee appendixes:°dONLNd_´ú∑·(¥úChapter 1, “Intr `°dONLNdo´‚∑H)Foduction to the QuickT∞`°dONLNdÖ´G∑î)eake 100 Camera,”0`°dONLNdï´ï∑)N gives a summary of °dONLNd©∏úƒΔ(¡ú
  146. the featur    `°dONLNd≥∏«ƒ)+es of the QuickT7@°dONLNd√∏ƒ¢)G!ake 100 digital computer camera. °dONLNd ú÷Ú(”úChapter 2, “QuickTȆ°dONLNd˜ Ò÷V)Uake 100 Driver Softwar$†°dONLNd W÷c)fe,”n@°dONLNd c÷o)  prµ`°dONLNd o÷„) ovides an overview of the °dONLNd-◊ú„º(‡úQuickTÄİdONLNd3◊º„=) ake 100 device driver softwarE °dONLNdP◊>„b)Çe and pr√°dONLNdX◊b„›)$esents guidelines and some °dONLNds‰ú1(Ìú!sample code for using the softwar`°dONLNdî‰2[)ñ
  147. e to contr[`°dONLNdû‰[ó))ol the QuickTó °dONLNd´‰ñı);ake 100. This chapter °dONLNd¡Òú˝"(˙úalso describes the device contr`İdONLNd‡Ò"˝«)Ü$ol functions supported by the QuickTVİdONLNdÒ«˝Í)•ake 100 °dONLNd ˛ú
  148. 6(ú!device driver for Macintosh and Wâ °dONLNd-˛6
  149. ø)öindows-compatible computers.°dONLNdJúÚ(úChapter 3, “QuickTȆ°dONLNd\Ò;)Uake 100 Images,”䆰dONLNdl<H)K pr—¿°dONLNdoHÚ) $ovides information about the memory °dONLNdìú)ü(&úrE°dONLNdî†)∑)equir\@°dONLNdô∑)Z)$ed for displaying the various QuickTö°dONLNdΩY)Ó)¢ ake 100 image formats supported °dONLNd›*ú6·(3úby the image pr–`°dONLNdÏ*·6*)Eocessing softwar'`°dONLNd¸*+6Â)J/e. It also lists the bit depths for the output °dONLNd+7úC√(@ú    formats. °dONLNd5IúU%*Chapter 4, “Displaying QuickT¿°dONLNdRI%Uá)âake 100 Images in a W‹‡°dONLNdgIÜU©)aindows ›Ä°dONLNdnI©U‰)#Application,”€†°dONLNd{IÂUÁ)< °dONLNd|Vúb•(_úprG °dONLNd~V¶bZ)
  150. (ovides a high-level overview of image pr‡°dONLNd¶V[bò)µocessing on a °dONLNd¥cúo¶(lúWÛ`°dONLNdµc•o')    indows-compatible computer ¿°dONLNdœc'oè)Ç. It also describes the WS °dONLNdËcèo€)hindows IPM DLL•‡°dONLNdˆc€o›)L °dONLNd˜pú|((yúfunctions that support image prİdONLNdp(|£)åocessing. These functions ar5`°dONLNd2p§|“)| e used for °dONLNd=}úâz(Üú0gathering information about images in the QuickT¿°dONLNdm}zâ‚)fiake 100 and displaying °dONLNdÑäúñ6(ìú!those images on the host computer–¿°dONLNd•ä5ñ:)ô. °dONLNd®úú®%(•úChapter 5, “Displaying QuickT¿°dONLNd≈ú%®Æ)âake 100 Images in a Macintosh †°dONLNd„ú≠®Ë)àApplication,”Ó¿°dONLNdúÈ®Î)< °dONLNdÒ©úµ•(≤úprG °dONLNdÛ©¶µ;)
  151.  ovides an overview of the QuickTK‡°dONLNd©;µu)ï ime decompr∏ °dONLNd©uµƒ):essor for image pr| °dONLNd0©≈µÏ)P    ocessing °dONLNd9∂ú¬∫(øúon the E‡°dONLNd@∂∫¬3)Apple Macintosh computer- °dONLNdX∂3¬8)y. °dONLNd[»ú‘À(—ú    Appendix 4‡°dONLNdd»À‘˝)/
  152. A, “QuickT¸†°dONLNdn»¸‘h)1ake 100 Serial Interface,”fi`°dONLNdà»i‘ˆ)m  includes information about the °dONLNd®’ú·º(fiúQuickTÄİdONLNdÆ’º·è) 0ake 100 serial connector and supported serial prʆ°dONLNdfi’è·–)”otocols. It also °dONLNdÔ‚úÓ•(ÎúprG °dONLNdÒ‚¶ÓÒ)
  153. Kovides two diagrams for building serial cables, one to connect a Macintosh °dONLNd<Ôú˚¸(¯úcomputer to a QuickTz°dONLNdPÔ¸˚±)`(ake 100 camera and another to connect a °dONLNdx¸ú¶(úWÛ`°dONLNdy¸•])    &indows-compatible computer to a QuickT¿Ä°dONLNdü¸]Ç)∏    ake 100. °dONLNd©ú¸(úAppendix B, “QuickTØÄ°dONLNdº˚`)_ake 100 Camera Specifi†`°dONLNd“aá)f    cations,”?@°dONLNd€àÿ)' lists the technical °dONLNdú'∏($úspecifiÓ °dONLNd˜∏')cations for the QuickT&‡°dONLNd'_)bake 100 camera.°dONLNd-ú9(6úAn index is also included. 
  154. @*[¯4A*[¯
  155. k*s¯4l*s¯ m*m˛
  156. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNd:X*k(f*Supplementary DocumentsˇˇˇˇˇˇV˛(f0
  157. °dONLNdS|úà¢(ÖúTµ¿°dONLNdT|°àÒ)Jo supplement the information in this developer note, Macintosh developers °dONLNdûâúï#(íúshould have copies of the appr@°dONLNdºâ$ïE)àopriate óİdONLNdƒâEïf)!Apple rZ°dONLNdÀâgïw)"efer °dONLNdœâxïÃ)ence manuals. The °dONLNd·ñú¢(üúfollowing documents arÎİdONLNd˜ñ¢í)i e essential to Macintosh softwar)°dONLNdñì¢◊)ée development:ˇû@ˇ ˇˇˇˇ@
  158. ˇ·ˇ‚7^
  159. 4⁄∫˙, Palatino
  160. ., (·xi    3, Ã(#∫PREFN )3ACE 4^H¿
  161. °dONLNd\∫h¿(e∫T°dONLNd\øhÚ)echnical IntrÇ °dONLNd\Úhz)3 oduction to the Macintosh Family”`°dONLNd.\yhç)á, thirîİdONLNd4\éh)d edition, surveys the °dONLNdKi∫ux(r∫)complete Macintosh family of computers frH°dONLNdtiyuΔ)øom the developerù¿°dONLNdÑi«u )N’s point of view#`°dONLNdîi u)D. °dONLNdó{∫áZ(Ñ∫$Macintosh Human Interface Guidelines膰dONLNdª{Záf)† pr÷¿°dONLNdæ{fá) 'ovides authoritative information about °dONLNdÂà∫îΔ(ë∫;the theory behind the Macintosh “look and feel” and standar*¿°dONLNd à«î(ë«d ways of using °dONLNd0ï∫°N(û∫!individual interface components. °dONLNdRß∫≥ˇ*Inside Macintoshb°dONLNdbß≥t)F is a collection of books, or¨°dONLNdßt≥)t$ganized by topic, that describe the °dONLNd£¥∫¿¸(Ω∫system softwarM‡°dONLNd±¥˝¿z)Ce of Macintosh computers. T˙¿°dONLNdÃ¥y¿ö)|ogether€†°dONLNd”¥ö¿fl)!, these books pr≈İdONLNd„¥fl¿)Eovide a °dONLNdΡ∫Õ÷( ∫compr‡°dONLNd¡◊Õ)
  162. ehensive r °dONLNd˙¡Õ)-eferΩ@°dONLNd˛¡Õt)ence for Macintosh pr˙¿°dONLNd¡tÕÕ)`ogrammers, softwar¯°dONLNd%¡ÕÕ)Ye designers, °dONLNd2Œ∫⁄"(◊∫and engineers. The curr˛†°dONLNdIŒ"⁄w)hent volume titles ar&°dONLNd]Œx⁄|)Ve°dONLNd_‡∫Ï,(È∫Inside Macintosh: Overview°dONLNdzÌ∫˘8*Inside Macintosh: Macintosh T“İdONLNdóÌ7˘{)}oolbox Essentials°dONLNd©˙∫(∫Inside Macintosh: Mor¯Ä°dONLNdæ˙O)\e Macintosh TưdONLNdÀ˙Oh)9oolbox°dONLNd“∫(∫Inside Macintosh: Files°dONLNdÍ∫ *Inside Macintosh: Pr3¿°dONLNd˛ *)Uocesses°dONLNd!∫-'(*∫Inside Macintosh: Memory°dONLNd.∫:2*Inside Macintosh: Imaging W`°dONLNd:.3:p)yith QuickDraw°dONLNdH;∫G
  163. (D∫Inside Macintosh: Tb°dONLNd[;
  164. G)Pext°dONLNd_H∫Tâ(Q∫0Inside Macintosh: Interapplication Communication°dONLNdêU∫a#*Inside Macintosh: QuickTꇰdONLNd®U#a1)iime°dONLNd¨b∫n#(k∫Inside Macintosh: QuickTꇰdONLNdƒb#nf)iime Components°dONLNd”o∫{5(x∫Inside Macintosh: Networking°dONLNdÅ∫çö*4Designing Cards and Drivers for the Macintosh Family∑ °dONLNd$Åôç≠)fl, thirx@°dONLNd*ÅÆç)d edition, explains the °dONLNdBé∫ö»(ó∫har`°dONLNdEé…ö‡)dwarN °dONLNdIé‡ö)e and softwari†°dONLNdVéö')<e rx@°dONLNdYé'ö>) equirèİdONLNd^é>ö ),ements for drivers and NuBus™ ‘90 accessory °dONLNdäõ∫ß«(§∫carµ@°dONLNdçõ«ßÉ)(ds compatible with Macintosh computers. °dONLNd∂≠∫π¿(∂∫Tµ¿°dONLNd∑≠øπ¥)6o supplement the information in this developer note, W`°dONLNdÌ≠µπ )ˆindows developers °dONLNdˇ∫∫ΔA(√∫should have copies of the appr@°dONLNd∫BΔx)à opriate Micrà¿°dONLNd)∫xΔö)6osoft W:`°dONLNd0∫öΔ«)"    indows pr`İdONLNd9∫«Δ˝)-
  165. ogramming °dONLNdC«∫”Ω(–∫rE°dONLNdD«æ”Œ)eferÒ °dONLNdH«Œ”#)ence manuals. Micr™¿°dONLNdZ«$”F)Vosoft Pr∑†°dONLNdb«F”©)"ess is an excellent sourJ‡°dONLNdz«™”
  166. )dce for documentation °dONLNdè‘∫‡<(›∫that meets the needs of the Wq†°dONLNd¨‘<‡ã)Çindows developerÑ¿°dONLNdº‘ã‡ê)O. 
  167. ÁH4ËH
  168. H4H H
  169. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNd¿ˇHÉ(HFor Moróæ°dONLNd«ˇÉÂ);e InformationˇˇˇˇˇˇV˛(0
  170. °dONLNd÷#∫/◊(,∫APDAH¿°dONLNd⁄#◊/„) is ¿°dONLNdfi#„/O) Apple’s worldwide sour¯ °dONLNdÙ#N/å)kce for over thr¿°dONLNd#ç/¥)?ee hundrº†°dONLNd #¥/˛)'ed development °dONLNd0∫<(9∫tools, technical rw¿°dONLNd,0<)Hesour¿°dONLNd10<\)ces, training prµ†°dONLNdA0\<˚)B#oducts, and information for anyone °dONLNdd=∫IŒ(F∫inter
  171. ¿°dONLNdi=œIn)$ested in developing applications on M`°dONLNdç=nIÚ)üApple platforms. Customers rj°dONLNd©=ÚI)Ñeceive °dONLNd∞J∫Vı(S∫the quarterly f`°dONLNdæJˆV)<APDA[@°dONLNd¬JV) T€@°dONLNdƒJVL)ools Catalog ~°dONLNd—JMVó)4featuring all curr @°dONLNd„JòV€)Kent versions of Ù`°dONLNdÛJ⁄V˜)BApple °dONLNd˘W∫cÄ(`∫+development tools and the most popular thirÈ¿°dONLNd$WÄc˙)Δd-party development tools. °dONLNd?d∫p≈(m∫Or ‡°dONLNdAdΔp) dering is easy; therü@°dONLNdUdp))Se ar≠‡°dONLNdYd)p˚).e no membership fees, and application forms arΔ‡°dONLNdád˚p)“e not °dONLNdçq∫}Ω(z∫rE°dONLNdéqæ}’)equir\@°dONLNdìq’}/)ed for most of the pr¥`°dONLNd®q/}Q)Zoducts. fi°dONLNd∞qQ}n)"APDA¶¿°dONLNd¥qn}y) of¬Ä°dONLNd∑qy}¸) fers convenient payment and °dONLNd”~∫är(á∫+shipping options, including site licensing.°dONLNdˇê∫ú¿*Tµ¿°dONLNdêøú–)o or¿°dONLNdê–úÎ)der pr‡°dONLNd
  172. êÏú')oducts or to rÒ‡°dONLNdê&úΔ):#equest a complimentary copy of the Ç@°dONLNd;ê«ú„)°APDAw °dONLNd?ê„úÎ) T˜ °dONLNdAêÍú¸)ools °dONLNdFù∫©Ÿ(¶∫Catalogó`°dONLNdMùŸ©)
  173. , contact ˇ l@ˇ ˇˇˇˇ@
  174. ˇ·ˇ‚7^
  175. 4⁄*˙¯, Palatino
  176. .(·*xii    3, Ã(#úPREFN )3ACE 4^*¿¯
  177. °dONLNd\úhπ(eúAPDAH¿°dONLNd\πhª) °dONLNdiúuÁ(rúApple Computer(İdONLNdiÁu˛)K, Inc. °dONLNdvúÇ¢(úP?†°dONLNdv°Ç“) .O. Box 319°dONLNd)Éúè´(åúBuf… °dONLNd,É´èœ)falo, NYG†°dONLNd4É–è)%  14207-0319
  178. */¯4*/¯
  179. ?*G¯4@*G¯ A*A˛
  180. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNd,*?4(:*T ‚°dONLNd,3?Ú)    ypographical ConventionsˇˇˇˇˇˇV˛(:0
  181. °dONLNd+Pú\°(Yú:This developer note uses typographical conventions that ar» °dONLNdeP°\…(Y°    e standarC@°dONLNdnP \›))d in °dONLNds]úiÚ(fúApple publications.°dONLNdáoú{Ç*6All code listings and the names of the actual data str4†°dONLNdΩoÉ{ö)Áuctur∫İdONLNd¬oö{‹)es, constants, fiU °dONLNd”o›{Ù)Celds, .°dONLNdŸ|úàÏ(Öúparameters, and rR`°dONLNdÍ|Ïà)P
  182. outines ar$¿°dONLNdÙ|àq),e shown in Courier (,
  183. Courier$¿°dONLNd|qàÀ)Ythis is Courier$¿°dONLNd|Àà‘)Z). .°dONLNdéúö (óúHexadecimal numbers ar∞`°dONLNd1é ö)oe pr¡ °dONLNd5éö·).eceded by a dollar sign ($). For example, the °dONLNdcõúßê(§ú8hexadecimal equivalent of decimal 16 is written as $10. 
  184. µ*√¯4∂*√¯,     Helvetica    °dONLNdú¥úøØ*Note
  185. ˇ·ˇ‚7^
  186. °dONLNd°¡úÕ£*A∫†°dONLNd¢¡£Õq)2 note like this contains information that is inter"°dONLNd‘¡rÕŸ)œesting but not essential °dONLNdÌÕúŸ+(÷ú!for an understanding of the text.,Zapf Dingbatsë°dONLNd–0ÿ6)îu
  187. fl°dONLNdÕ6Ÿ8) 
  188. Ê*Ù¯4Á*Ù¯°dONLNdÁúÔª(ÌúIMPORTİdONLNdÁªÔÀ)ANT
  189. ˇ·ˇ‚7^
  190. °dONLNdÚú˛£(˚úA∫†°dONLNdÚ£˛∫)@ note like this contains important information that you should rNİdONLNd]Úª˛Õ(˚ªead °dONLNda˛ú
  191. ≥(úbefor_†°dONLNdf˛≥
  192. ƒ)e prp`°dONLNdj˛ƒ
  193. Ó)    oceeding.Œ°dONLNdtÛ    ˙)/s
  194. Ò°dONLNdu˛˙
  195. ¸) °dONLNd?ïú°¢(ûúTµ¿°dONLNd@ï°°…)elephone°dONLNdIï˛°z)]800-282-2732 (United States)°dONLNdf†˛¨a* 800-637-0029 (Canada)°dONLNd|´˛∑y* 716-871-6555 (International)°dONLNdöªú«´(ƒúFax°dONLNdûª˛«1)b 716-871-651õ °dONLNd©ª1«8)31 °dONLNd≠Àú◊À(‘ú    AppleLink°dONLNd∑À˛◊)bAPDA°dONLNdΩ€úÁ‚(‰úAmerica Online°dONLNdÀ˛Á)bAPDA°dONLNd“Îú˜’(Ùú
  196. CompuServe°dONLNd›Î˛˜-)b
  197. 76666,2405°dONLNdÈ˚úø(úInternet°dONLNdÚ˚˛})bAPDA@applelink.apple.comˇ@ˇ ˇˇˇˇ@
  198. ˇ·ˇ‚7^
  199. 4⁄∫˙, Palatino    3,. Ã+∫#CHAPTER ÿ)h1ˇˇu÷ˇÆ°dONLNdZ∫w‰(p∫Intr$»°dONLNdZ‰wó)*oduction to the 
  200. ôH84ôH8 2H2
  201. ˇ·ˇ‚7^°dONLNdz∫ó(ê∫QuickT±Ñ°dONLNdzó¬)Sake 100 Cameraˇˇˇˇˇˇä*)¸1
  202. ^ÇH4`}Cˇˇˇˇˇˇ,     Helvetica    (f
  203. Figure 1-0*     Listing 1-0*    T)able 1-0ˇ §@ˇ ˇˇˇˇ@
  204. ˇ·ˇ‚7^
  205. 4*\¯, Palatino&e.3+l"CHAPTER à)>1,     Helvetica    ˇˇ—ÚˇÆ(@lIntroduction to the QuickTŸ$)aake 100 Camera4⁄*˙¯
  206. (‡*1-2    )BQuickT@)ake 100 Overview4^*¿¯
  207. °dONLNd\lh)(el*This chapter gives a summary of the featur懰dONLNd*\)hq)Ωes of the QuickTÏ¿°dONLNd:\ph∏)Gake 100 camera. Á†°dONLNdJ\∏hÙ)H An overview °dONLNdVilu‘(rlof how to use the featur6@°dONLNdni’u)ies of the QuickTd °dONLNd~iup)Gake 100 driver is pr†°dONLNdíiquù)U
  208. ovided in ¡†°dONLNdúiùuÕ), Chapter 2, °dONLNdßvlÇë(l“QuickTÄİdONLNdÆvëLj)%ake 100 Driver SoftwarªÄ°dONLNdƒvˆÇ)ee.” °dONLNd«vÇ) 
  209. â*§¯4ä*§¯
  210. ¥*º¯4µ*º¯ ∂*∂˛
  211. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNd °*¥_(Ø*QuickT·å°dONLNd–°^¥fl)4ake 100 OverviewˇˇˇˇˇˇV˛(Ø1
  212. °dONLNd‚≈l—†(Œl
  213. The QuickTº@°dONLNdÏ≈ü—)3Nake 100 is a portable, fully automatic, hand-held digital computer camera. It °dONLNd:“lfi|(€lstor9‡°dONLNd>“}fi•)es comprA`°dONLNdF“•fi~)(2essed 24-bit color still images in internal memory*İdONLNdx“}fi≠)ÿ . Images ar7¿°dONLNdÉ“≠fi–)0e captur@°dONLNdã“—fifi)$ed °dONLNdéfllÎ∫(Ëlusing the same pr  °dONLNdüflªÎ')Oocess used to take pictur@°dONLNd∏fl'ÎÎ)l)es with any hand-held camera—aim at your °dONLNd·Ïl¯™(ılsubject and pr”°dONLNdÔÏ™¯Å)>2ess a button to open the shutter and take a pictur`‡°dONLNd!Ïǯ˜)ÿe. The internal memory in °dONLNd;˘l–(lthe camera acts like a rº°dONLNdS˘–Ô)doll of fiÿ`°dONLNd\˘Ô!) lm that stor§¿°dONLNdh˘"ê)3es the images by number$†°dONLNd˘ê¯)n. In addition to manual °dONLNdólÇ(lcontr>İdONLNdúÉ¡)ol, the QuickT˙@°dONLNd™¿,)=ake 100 can also be contrø@°dONLNd√-Ó)m-olled over a serial cable by a host computer °dONLNdl∏(lusing the softwarO °dONLNdπR)M$e described in this developer note. °dONLNd&%l1†(.l
  214. The QuickTº@°dONLNd0%ü1Ã)3
  215. ake 100 pr‹ °dONLNd:%Ã1‡)-@ovides a simple solution for capturing and transferring digital °dONLNdz2l>‡(;limages to a host computerTİdONLNdì2‡>ç)t). Using a serial interface, images capturÑ¿°dONLNdº2ç>˜)≠ed in the camera can be °dONLNd‘?lKo(HlrE°dONLNd’?pKÈ)Uetrieved by the host computer without the need of an intermediary digitizing device, °dONLNd*LlX:(Ul.such as a scanner or frame-capturing video carÖ@°dONLNdXL:Xy)Œd. The QuickT›@°dONLNdeLxX‘)>ake 100 serial port is °dONLNd|Yle§(bldescribed in `°dONLNdâY•e‘)9    Appendix …@°dONLNdíY”e).
  216. A, “QuickTë°dONLNdúYeq)2ake 100 Serial Interface.”r¿°dONLNd∂Yret)m °dONLNd∏klwå(tlQuickTÄİdONLNdækåw⁄) ake 100 images arp`°dONLNdœk⁄w˝)Ne captur:‡°dONLNd◊k˛w=)$ed in two user;†°dONLNdÂk=wQ)?-defiņ°dONLNdÍkQwÄ) ned pixel r¬Ä°dONLNdıkÄwÁ)/esolutions—640 by 480 °dONLNd xlÑA(Ål0and 320 by 240. Images with 640 by 480 pixels ar˝ °dONLNd;xAÑL)’e r ¿°dONLNd>xMÑa) eferr™Ä°dONLNdCxaÑÖ)    ed to as ¿°dONLNdLxÜÑû)%high-r’‡°dONLNdRxûÑ„)esolution images.D@°dONLNdcx‰ÑÊ)F °dONLNddÖlë˚(él Images with 320 by 240 pixels ary@°dONLNdÑÖ˚ë)èe rᇰdONLNdáÖë) eferr&†°dONLNdåÖë?)    ed to as ć°dONLNdïÖ?ëi)$
  217. standard-rİdONLNdüÖjëØ)+esolution images.ɇ°dONLNd∞ÖØëÂ)E  The QuickT@ °dONLNdªÖÂëˆ)6ake °dONLNdøílû(õl100 camera has a 1 MB memory arÕ¿°dONLNdfiíûî)ó!ea for image storage and can storë`°dONLNdˇíïû—)íe a total of 32 °dONLNdül´ç(®lstandar±Ä°dONLNdüç´ö)!d-rÊ °dONLNdüö´ )esolution images, 8 high-rH†°dONLNd3ü´€)s/esolution images, or a combination of the two. °dONLNdc±lΩ(∫l&In addition, a thumbnail image is storŒ`°dONLNdâ±Ωá)¶ed with each image captur® °dONLNd¢±áΩñ)ued. / °dONLNd¶±óΩû)Ai¿°dONLNdß±ûΩÓ) thumbnail image °dONLNd∏æl °(«lhas a pixel ròİdONLNd≈æ° ^)5*esolution of 80 by 60. Thumbnail images ard°dONLNdÔæ_ ù)æe useful for prҰdONLNd˛æù ÿ)>eviewing the °dONLNd Àl◊œ(‘lcontents of an image fiPİdONLNd"À–◊‹)dle. °dONLNd'›lÈ™(ÊlThe images arR‡°dONLNd4›™Ȭ)>e storV`°dONLNd:›¬È<)ed in the camera in a compr°dONLNdU›=Ⱥ){essed format that cannot be r¿†°dONLNdr›ºÈÒ) eadily used °dONLNd~Ílˆ…(Ûlby the host computer憰dONLNdíÍ…ˆÓ)]. QuickTø °dONLNdöÍÓˆ\)%ake 100 images must be rZ¿°dONLNd≤Í]ˆã)o etrieved fr/‡°dONLNdΩÍãˆı).om the camera with the °dONLNd‘˜lå(lQuickTÄİdONLNd⁄˜å·) ake 100 driver DLLH‡°dONLNdϘ·`)U functions and then decomprñ@°dONLNd˜`…)essed with the Image PrI†°dONLNd˜ Ò)j    ocessing °dONLNd'lÕ(lLModule (IPM) functions prior to displaying them within an application windowe@°dONLNdsÕ“(Õ. °dONLNdvl"E(l.On the Macintosh computer the IPM functions ar|¿°dONLNd§E"ƒ)Ÿe incorporated into a QuickT‹†°dONLNd¿√"Ê)~ake 100 °dONLNd»#l/å(,lQuickTfi‡°dONLNdŒ#å/Δ)  ime decomprK °dONLNdŸ#«/›);essor9İdONLNdfi#›/Î). Pr °dONLNd‚#Ï/Ã)0ograms written for the Macintosh use the decompr2`°dONLNd    #Ã/)‡    essor to °dONLNd    0l<ì(9ldecomprÊ@°dONLNd    "0ì<œ)'ess the comprà °dONLNd    /0–<)=essed raw QuickT˚@°dONLNd    ?0<·)N,ake 100 image data so that the image can be °dONLNd    k=lI(Fl#displayed on the Macintosh computerÆ °dONLNd    é=I:)ß    . Standar‚`°dONLNd    ó=:Ic)'d QuickT›°dONLNd    ü=cIí))    ime comprc‡°dONLNd    ®=ìIÀ)0essor calls arR†°dONLNd    ∂=ÀIÈ)8e used °dONLNd    ΩJlV≥(Slfor the decompr†°dONLNd    ÃJ≥V)Gession and display pr·Ä°dONLNd    ·JV-)^ocess. °dONLNd    È\lhs(elA∫†°dONLNd    Í\sh) WưdONLNd    Ï\h∂)
  218. indows DLL£`°dONLNd    ˆ\∂h¬)7 prÍİdONLNd    ˘\¬h+) ovides the IPM for Micr†°dONLNd
  219. \,hN)josoft WÃ@°dONLNd
  220. \Mh|)!    indows. W†°dONLNd
  221.  \}h™)0    indows prD¿°dONLNd
  222. )\™hÔ)-ograms use the °dONLNd
  223. 8ilu–(rlfunctions described in fl†°dONLNd
  224. Oi–uY)dChapter 4, “Displaying QuickTn`°dONLNd
  225. liYuª)âake 100 Images in a W<İdONLNd
  226. Åiªufi)bindows °dONLNd
  227. àvlÇß(lApplication,”~ °dONLNd
  228. ïv®Ç›)<  to decomprú@°dONLNd
  229. †v›ÇT)5ess and display the QuickTe†°dONLNd
  230. ∫vTÇ◊)wake 100 raw image data in an °dONLNd
  231. ◊ÉlèÄ(ålapprI@°dONLNd
  232. €ÉÅèË)opriate display format. °dONLNd
  233. Ùïl°“(ûlQFor a discussion of what your application needs to do to interact with the QuickT¿°dONLNd Eï“°ı(û“ake 100 °dONLNd M¢lư(´l camera, see –¿°dONLNd Y¢°ÆÙ)5“Using the QuickT˚¿°dONLNd j¢ÛÆX)Rake 100 Driver Softwar6¿°dONLNd Ä¢YÆ∫)fe” beginning on page VİdONLNd ï¢∫Æ«)a2-3™`°dONLNd ò¢«ÆÃ). ˇÿ@ˇ ˇˇˇˇ@
  234. ˇ·ˇ‚7^
  235. 4H\, Palatino&e.3+ä"CHAPTER à)>1,     Helvetica    ˇˇ—ÚˇÆ(@äIntroduction to the QuickTŸ$)aake 100 Camera4⁄ä˙(‡äQuickT@)ake 100 Developer Software
  236. , (‡    1-34^H¿
  237. ^Hx4^Hx
  238. àHê4âHê äHä
  239. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNduHà}(ÉHQuickT·å°dONLNdu|à<)4ake 100 Developer Softwarïé°dONLNdu=àD)¡eˇˇˇˇˇˇV˛)—1
  240. °dONLNd"ô䕿(¢ä
  241. The QuickTº@°dONLNd,ôΩ•0)3ake 100 developer softwark@°dONLNdEô1•)t0e is available for both Macintosh computers and °dONLNdu¶ä≤û(ØäMicr‡°dONLNdy¶ü≤¡)osoft WƒÄ°dONLNdĶ¿≤l)!$indows compatible computers. The harîİdONLNd§¶m≤Ñ)≠dwarÃ@°dONLNd®¶Ñ≤¿)e and softwarÁ¿°dONLNdµ¶¿≤À)<e rˆ`°dONLNd∏¶À≤‚) equir†°dONLNdΩ¶„≤ˇ)ed for °dONLNdƒ≥äøfl(ºädeveloping QuickT˛†°dONLNd’≥fiøï)T'ake 100 applications on Macintosh and WX °dONLNd¸≥ñø )∏indows platforms is listed °dONLNd¿äÃ…(…äin this section.
  242. ÒH¯4ÚH¯ ÛäÛ
  243. ˇ·ˇ‚7^ˇˇ‹.ˇ◊°dONLNd(‚äÒ»*$    Macintoshˇˇˇˇˇˇ€r(Ì1
  244. °dONLNd3˝ä    æ(ä
  245. The QuickTº@°dONLNd=˝Ω    9)3ake 100 driver and image pr∑†°dONLNdX˝9    Ç)|ocessing softwar†°dONLNdh˝É    ¯)Je work with the following ( °dONLNdÇ˝¯    )uApple °dONLNdà
  246. ä˝(äMacintosh computer confik°dONLNd†
  247. ˛-)t gurations: ,Zapf Dingbats°dONLNd¨ ä'è(&än
  248. °dONLNdÆñ)) computers with a Motorπ`°dONLNdƒ)A)kola 68020 or grSİdONLNd”B)o)A    eater CPU°dONLNd›2ä9è(8än
  249. °dONLNdfl/ñ;€) System 7.0.1• Tµ‡°dONLNdÓ/⁄;ô)D+une-Up or a later version of system softwar*`°dONLNd/ö;û)¿e°dONLNdDäKè(Jän
  250. °dONLNdAñM’) 5 MB of RAM °dONLNd*Rä^æ([ä
  251. The QuickTº@°dONLNd4RΩ^)3ake Image QuickTˇ °dONLNdDR^G)P ime decomprk`°dONLNdORH^•);essor and the QuickTb °dONLNdcR•^)]ake 100 glue code and °dONLNdy_äk∞(häheader fi¿°dONLNdÇ_±kÔ)'les (CmDriverk°dONLNdè_Ôk')> .c, CmDriverɆ°dONLNdõ_'kz)8.h, and GeoPortErr©‡°dONLNd≠_zkû)S    ors.h) ar9@°dONLNd∂_ük™)%e rG‡°dONLNdπ_™k¡) equir_ °dONLNdæ_¡kˇ)ed to develop °dONLNdÃläx´(uäsoftwar‰¿°dONLNd”l´x€)! e that can rã °dONLNdfll‹xn)1ecognize and can display QuickT7°dONLNd˛lnx)í$ake 100 images that have been saved °dONLNd"yäÖB(Çä'on the Macintosh computer in the QuickTc°dONLNdIyBÖ•)∏ake 100 image format. °dONLNd`ãäó˙(îäIn addition to the QuickT◊ °dONLNdyã˘óI)oake Image QuickT°dONLNdâãJóÑ)Q ime decomprÜ@°dONLNdîãÑó˛):essor system extension, the °dONLNd∞òä§ÿ(°äfollowing softwar@°dONLNd¡òŸ§˚)OAe components, which must be installed using the Installer softwarÛ¿°dONLNdò˙§(°˙e on °dONLNd•䱪(Æä
  252. the QuickT›‡°dONLNd•∫± )0ake 100 disk set, ardONLNd%•±ä)Se needed to develop softwarñ °dONLNd@•ä±Ó)}e for connecting to the °dONLNdX≤äæ™(ªäQuickTÄİdONLNd^≤™æ+) ake 100 camera, taking pictur›`°dONLNd{≤+æ<)Åes, r©°dONLNdÄ≤=æÅ)etrieving pictur2°dONLNdê≤ÇæÁ)Ees, and setting various °dONLNd®øäÀ4(»ä&operational paramaters of the camera: °dONLNdœ’ä‹è*n
  253. °dONLNd—“ñfiN) (ColorSync version 1.0.3 and ColorSync PreİdONLNd˘“NfiY)∏ofiÁ¿°dONLNd¸“Yfiç) les—a contr@°dONLNd“éfi¡)5 ol panel (pr†°dONLNd“¡fiÌ)3
  254. ovides scr,`°dONLNd“Ìfi˛),een °dONLNd!fiñͧ(Áñchr܆°dONLNd$fi§Í)omaticity values)°dONLNd6Ûä˙è(˘än
  255. °dONLNd8ñ¸§) ForI†°dONLNd;•¸Õ)
  256. eign File '@°dONLNdEÕ¸@)(Access—system extension°dONLNd]ä è( än
  257. °dONLNd_ñv) 0GeoPortSerialDriver 1.0—a system extension (Shar™‡°dONLNdèvˆ)‡ed Library Manager module)°dONLNd™äè(än
  258. °dONLNd¨ñ L) %Network and associated Network Resour%İdONLNd—M c)∑ces fi) °dONLNd◊c ã)le—contrô†°dONLNdflã Æ)(ol panel°dONLNdË)ä0è(/än
  259. °dONLNdÍ&ñ2∂) QuickTÄİdONLNd&∂2«) ake ˙‡°dONLNdÙ&«2O)Access—system extension (For(¿°dONLNd&P2x)â
  260. eign File `°dONLNd&x2Ω)(Access module)°dONLNd);äBè(Aän
  261. °dONLNd+8ñD∂) QuickTÄİdONLNd18∂DÑ) +ake Camera device driver—a system extension°dONLNd]MäTè(Sän
  262. °dONLNd_JñV∂) QuickTfi‡°dONLNdeJ∂V]) $ime version 1.6.1—a system extension°dONLNdä_äfè(eän
  263. °dONLNdå\ñhS) )Serial Extension—a system extension (Shar)¿°dONLNdµ\Th‘)æed Library Manager module)°dONLNd–qäxè(wän
  264. °dONLNd“nñzÌ) LSerial Switch version 1.1—for the Macintosh IIfx, Macintosh Quadra 900, and °dONLNdzñÜ+* Macintosh Quadra 950 computers°dONLNd=èäñè(ïän
  265. °dONLNd?åñò™) SharV °dONLNdCå™òÓ)Fed Library Manager version 1.1.1 and associated Library Manager Resour¿°dONLNdâåÔò(ïÔces fi`°dONLNdèåò )le°dONLNdíùä© (¶ä!The following application softwar܇°dONLNd≥ù ©ˆ)ñ0e is also on the disks that accompany the QuickTLJ°dONLNd„ùˆ©)÷ake °dONLNdÁ™ä∂¿(≥ä 100 camera: ˇ2@ˇ ˇˇˇˇ@
  266. ˇ·ˇ‚7^
  267. 4*\¯, Palatino&e.3+l"CHAPTER à)>1,     Helvetica    ˇˇ—ÚˇÆ(@lIntroduction to the QuickTŸ$)aake 100 Camera4⁄*˙¯
  268. (‡*1-4    )BQuickT@)ake 100 Features4^*¿¯,Zapf Dingbats°dONLNd_lfq(eln
  269. °dONLNd\xhò) QuickTÄİdONLNd\òhB) &ake version 1.0—an application that prMİdONLNd.\Chˆ)´*ovides an interface for connecting to the °dONLNdXhxtò(qxQuickTÄİdONLNd^hòt) ake 100 camera, taking pictur›`°dONLNd{ht*)Åes, r©°dONLNdÄh+to)etrieving pictur2°dONLNdêhpt∏)Ees, saving picturN°dONLNd°h∏t)Hes in several °dONLNdØtxÄ~(}xfiå¿°dONLNd±t~Äà)<le formats, and setting operational paramaters of the camera°dONLNdÓâlêq(èln
  270. °dONLNdÜxíò) QuickTÄİdONLNdˆÜòíÎ) ake Setup—a contrÏ¿°dONLNdÜÎí¬)S/ol panel for mounting the camera on the desktop
  271. ∂*Ω¯4∑*Ω¯ ∏l∏¯
  272. ˇ·ˇ‚7^ˇˇ‹.ˇ◊°dONLNd7ßl∂y(≤lWíÓ°dONLNd8ßy∂£)indowsˇˇˇˇˇˇ€r(≤1
  273. °dONLNd@¬lŒ†(Àl
  274. The QuickTº@°dONLNdJ¬üŒÙ)3ake 100 driver DLLц°dONLNd\¬ÙŒ1)U and image prŒ°dONLNdi¬1Œl)= ocessing DLLV†°dONLNdu¬mŒë)< softwar;`°dONLNd}¬ëŒŸ)$e work with the °dONLNdçœl€≠(ÿlfollowing MicrB`°dONLNdõœÆ€–)Bosoft WÙ°dONLNd¢œœ€)! indows confi‡°dONLNdÆœ    €8): gurations: °dONLNd∫ÂlÏq(Îln
  275. °dONLNdº‚xÓÇ) WÛ`°dONLNdΩ‚ÅÓ”)    indows 3.1 or later°dONLNd—˜l˛q(˝ln
  276. °dONLNd”ÙxÂ) Intel i80386, i80486, or gr1@°dONLNdÓÙÊ)n
  277. eater CPU °dONLNd˘    lq(ln
  278. °dONLNd˚x∑) 4 MB of RAM °dONLNdl#Õ( lThe following softwarP°dONLNdŒ#)be components ar˚¿°dONLNd,#!)He r
  279. `°dONLNd/"#9) equir!†°dONLNd49#Z)ed to crÙ °dONLNd<Y#w) eate WΩ °dONLNdBw#Œ)indows-compatible °dONLNdT$l0‰(-lapplications for the QuickTç¿°dONLNdo$‰0))xake 100 camera:°dONLNd:lAq(@ln
  280. °dONLNdÅ7xCò) QuickTÄİdONLNdá7òCÌ) ake 100 driver DLLH‡°dONLNdô7ÌC))U and header fi5¿°dONLNdß7*CE)=le (QT˙‡°dONLNd≠7DCz)    AKE-D.DLLGİdONLNd∂7{Cû)7 and QTs‡°dONLNdΩ7ûCÃ)#AKE-D.H)°dONLNdΔLlSq(Rln
  281. °dONLNd»IxUò) QuickTÄİdONLNdŒIòU‰) ake 100 IPM DLLÕ°dONLNd›I‰U )L and header fiπ‡°dONLNdÎI!U<)=le (QT°dONLNdÒI<Un)    AKE-I.DLLl‡°dONLNd˙InUë)2 and QTô@°dONLNdIëU∫)#AKE-I.H)
  282. [*v¯4\*v¯
  283. Ü*é¯4á*鯠à*à˛
  284. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNd s*Ü_(Å*QuickT·å°dONLNds^Ü≈)4ake 100 Featurá°dONLNdsΔÜ‘)hesˇˇˇˇˇˇV˛(Å1
  285. °dONLNd#ól£†(†l
  286. The QuickTº@°dONLNd-óü£,)3ake 100 camera has many featur`°dONLNdKó-£U)é
  287. es that ar& °dONLNdUóU£è)(e easily contr¿°dONLNdcóè£ÿ):olled by the user˜Ä°dONLNdtó◊£Â)H. It °dONLNdy§l∞˜(≠lalso has an LCD display that pr¬†°dONLNdò§˜∞ı)ã:ovides visual feedback about various internal conditions. 
  288. ’*‹¯4÷*‹¯ ◊l◊¯
  289. ˇ·ˇ‚7^ˇˇ‹.ˇ◊°dONLNd”Δl’ø(—lUser Controlsˇˇˇˇˇˇ€r(—1
  290. °dONLNd‚·l̆(Íl
  291. The QuickTº@°dONLNdÏ·üÌ<)3#ake 100 camera has these user contrΔ¿°dONLNd·<ÌM)ùols: °dONLNd˜l˛q(˝ln
  292. °dONLNdÙx¡) power on and ofZ†°dONLNd&Ù¡ƒ)If°dONLNd(    lq(ln
  293. °dONLNd*x~) flå¿°dONLNd,~¨)
  294. ash button°dONLNd7l"q(!ln
  295. °dONLNd9x$º) erase-all button°dONLNdJ-l4q(3ln
  296. °dONLNdL*x6Ø) timer button°dONLNdY?lFq(Eln
  297. °dONLNd[<xH{) rE°dONLNd\<|Hƒ)esolution button°dONLNdmQlXq(Wln
  298. °dONLNdoNxZ∑) shutter button°dONLNd~_lkü(hl These contrć°dONLNdâ_ük∑)3ols ar`¿°dONLNdè_∑kZ)&e described in the following sections.
  299. â*ê¯4ä*ꯠãlã¯
  300. ˇ·ˇ‚7^ °dONLNd∂|lä»(ÜlPower On and Of˘¿°dONLNd≈|»äÀ)\fˇˇˇˇˇˇ‘@(ÜÒ1
  301. °dONLNd»êlú"(ôl)Power is on when the lens cover on the fr °dONLNdÒê"úÏ)∂0ont of the camera is slid to one side, exposing °dONLNd!ùl©ì(¶l
  302. the lens. ù¿°dONLNd+ùì©´)'FigurpİdONLNd0ù´©ø)e 1-1°dONLNd5ù¿©}), shows the lens cover in the open position. e‡°dONLNdaù}©ß)ΩAt powerL¿°dONLNdiùß©·)*-on time, the ˇÜ@ˇ ˇˇˇˇ@
  303. ˇ·ˇ‚7^
  304. 4H\, Palatino&e.3+ä"CHAPTER à)>1,     Helvetica    ˇˇ—ÚˇÆ(@äIntroduction to the QuickTŸ$)aake 100 Camera4⁄ä˙(‡äQuickT@)ake 100 Features
  305. , (‡    1-54^H¿°dONLNd\äh¬(eä LCD displayè°dONLNd \¡hÒ)7 , shown in ı°dONLNd\Òh    )0Figur«¿°dONLNd\    h)e 1-2e@°dONLNd \hî), becomes active, and the flŸ°dONLNd<\îh)v ash is set to automatic. If the °dONLNd\iäuì(rägr‘ °dONLNd^iìu)    een light is on in the view fiο°dONLNd|iu!)znder◊¿°dONLNdÄi!uf), the camera is r °dONLNdëigu¡)Feady to take a picturP¿°dONLNd¶i¡u )Ze. 
  306. óH®4òH®"òH]
  307. ˇ·ˇ‚7^    °dONLNd™çäò¥(ïä
  308. Figure 1-1°dONLNdµçÃòË)BQuickT@°dONLNdªçËòÑ)'ake 100 lens cover in the open position
  309. °dONLNd‰ä!ê(äTµ¿°dONLNdÂè!‰)o turn the power of<¿°dONLNd¯Â!B)Vf, close the lens cover°dONLNdB!t)] . The pictur≥°dONLNdt!)2e r¡†°dONLNd!¯) esolution, number of pictur¡‡°dONLNd9¯!)yes °dONLNd<"ä.(+ätaken, and number of pictur|†°dONLNdW".i)|es available settings arä °dONLNdo"i.Å)ce stor熰dONLNdu"Å.)ed after the power is turned of·¿°dONLNdî".)Üf. °dONLNdó/ä;Œ(8äOther settings r °dONLNdß/œ;E)Eeturn to the default values.
  310. ]Hn4^Hn"^H]
  311. ˇ·ˇ‚7^    °dONLNdƒSä^¥([ä
  312. Figure 1-2°dONLNdœSÃ^Ë)BQuickT@°dONLNd’SË^†)-ake 100 LCD display and user control buttons 
  313. H4    H 
  314. ä
  315. 
  316. ˇ·ˇ‚7^ °dONLNd˚ä    Õ(ä Flash Buttonˇˇˇˇˇˇ‘@(1
  317. °dONLNdäë(äA∫†°dONLNdëô) flG`°dONLNdö˙)    ash button toggles thrŒ°dONLNd,˙ )`ee flÓ°dONLNd1 ~)ash settings—automatic flH`°dONLNdJô)sash, flcİdONLNdQô‘)ash on, and fl≤†°dONLNd_‘Ó);ash of‹¿°dONLNdeÓˆ)f. 
  318. 5H:46H: 7ä7
  319. ˇ·ˇ‚7^°dONLNdi*ä6◊(3äAutomatic Flashˇˇˇˇˇˇ‡(31°dONLNdz<äHˆ(EäWhen power is on, the flÕ†°dONLNdí<ˆHÆ)l)ash is set to automatic. When automatic fl◊`°dONLNdº<ÆHÍ)∏ash is set, the °dONLNdÃIäU™(RäQuickTÄİdONLNd“I™UU) $ake 100 camera determines when the flˇ†°dONLNd˜IUUü)´ash is used accor˜‡°dONLNdIüU„)Jding to the curr†¿°dONLNdI‰U )E
  320. ent light °dONLNd"VäbΩ(_ä conditions. ãİdONLNd.VΩbƒ)3AΔ °dONLNd/Vƒb–) grö@°dONLNd2V–b2) een light in the view fiE†°dONLNdJV3bä)cnder indicates the fl–@°dONLNd_Väbÿ)Wash is fully powerú °dONLNdqVŸb
  321. )O ed and the °dONLNd|cäo∫(lä camera is rj‡°dONLNdác∫o)0eady to take a picturõ†°dONLNdúco)Ze. 
  322. âHé4äHé ãäã
  323. ˇ·ˇ‚7^°dONLNd†~ää¥(áäFlash Onˇˇˇˇˇˇ‡(á1°dONLNd™êäú©(ôäIf the flİdONLNd≥ê™úÔ) ash button is prÒ¿°dONLNd√êÓúX)Dessed while automatic flò@°dONLNd€êYú©)kash is active, the flA°dONLNdê™ú)Qash-on setting becomes °dONLNdùä©À(¶äactive. In the fl§‡°dONLNdùÀ©?)Aash-on setting, the QuickT °dONLNd2ù?©“)t ake 100 camera always uses the flô¿°dONLNdSù“©)ì ash when a 
  324. ®ä˝÷4ßâ®äò@@¯@¯®äËÇ¡¡¡¯ˇˇÕ ˘¿ˇ¿œ ˘~˛Ä–˙¿¸ˇ–˙˛¯˛—˙    p‡¸“˚¿0IJ¯”˚˛0˜¸‘˚x˛ú˚‡’¸¿˛p˙<’¸¿˛{¿˙’¸x˛Œ˘Ä÷˝¿˛8˘Ä÷˝˝=‡˘ Ä÷˝8˛Ô¯8Ä÷˝¸˛x¯`¿÷˛IJ?¿˘¿@÷˛˛¸¯@÷˛8˛‡¯@÷˛‡˛˜8@÷Ä˜`@÷‡į¿@÷>˛¸˜@÷‡¿˜@÷Ä>ˆ8@÷ˇ˝˚`@÷¿˝Ä˛«¸¿¿÷p|˛¸¸¿÷Ô«¸¿¯@÷ˇˇÁ¯¯8 @÷    ?è¸0˚`@÷    IJ¿Ò¯¸¿0@÷˛¯Ä¸‡@÷˝¸|¸Ä@÷¸ÁÚG‡˝8;¿÷
  325. 8¿?¿>˝`ÓÄ÷8¸!˙¯‡¿úÄ÷0˛ œ¿?8Ä÷0ˇ†x| xÄ÷06ˇÄ†«‡x’ %ˇ¿∞~>¡0px’ -ˇ‡–„‡y‡¿x ’ iˇX–?< ¿Äx’0)ˇHÿÁÑxp’0)ˇ    hà<Ê h¿’)ˇ    (à≤8Ä’    (ˇ¯    ê(˛“ w‘    (ˇ¯ê( ˛[ Ã‘     <ˇ¯ê,Ñ˛I ò‘     ¯ê$ƒ˛i`0‘?¯ê$‰>)‡ ‡‘¯ê$?Ù?-Ä 9Ä‘Ä诠   ê,/Ùˇ¿$Ä c”¿«    (?˛ˇ˛<Ä Δ”‡`P    (˙ˇˇÙÄp#ú”¯π    (˙ˇˇ‰Ä¿&0”nœ¿0(˙ˇˇ‰ÉÄ,`”;ÄÄ (˙ˇˇÂÜ9¿” ‡ (ÚˇˇÂ#“<˝    8‚ˇˇÂ0“áIJ    pˇˇÁ‡“ò@@į@įËä(Ç¯˛    PˇˇÂÄp“˛    P?ˇˇÂ¿“Ň–ƒ/ˇˇÂÄ“˛ ‡>∞ƒ?ˇˇÌ—˛ <†ÃˇˇÈ —˛ ‡†»ˇÈ8—˝ ?øˇ˘`—˝ ˇ¯È¿—¸Åɡ–˛{–˚¸˛R–˚‡˛r–˙>˛Êp–˙‡§¿– ˘Ä?ÔÄ–
  326. ¯¯˛fiœ
  327. ¯¿ˇ¯œ˜~ûŒ˜ÛpŒˆ¿Œ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯(ähÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿¯¿¯hä®Ç¡¡¡¡¡¡¡¡¡¡¡¡ ˛ò8òÀ ˛ÑÄÀ ˛ å ˛      î⁄–ÄŒ˛    @ §6äc@Œ˛    F@—~$îCÄŒ˛ÄBK%ÑÕ˛    ¸ 8w>ÉÄŒ¯ÄïÄïÀ¡˛˛0<¿—˛˚
  328. @—˛˝DÄ—˛Õ˜    1dɺÂÑ    ÛG 7LM4ÿ˛F"Rf§ÑPFö
  329. 4QIIµ¶Hÿ˛B¢
  330. G-PDú
  331. 8¢Ñ â%ƒàÿ˛D¥ ò6†â  @¥≤&ûNúÿ˛9$Á$ â9'‹jI»hÿˆ Õˆ¿ÕˆÄÕ¡˛ ò‡Ä¿—˛˛êÄ@—˛˛Ä@“˛!<—¡I¥é‚“˛FîRA    πi"KXëM“˛G(° rBãê!N“˛à-,Ç" ÉDî !"ê“˛I˜¡»r9c†1铈ՈՈČ¡˝√¿ 0p‡ ÷˛$¢˚â¸÷˝H≤˛ Ä ÀÄ÷˛à¨8˝Œ2L¢∞ń苇Qÿ˝GD    Eîí[M@îYI!¶¥Hÿ˝BDÖ(àîNARàÇ'8àÿ˝DHäm$% Å(¶“B¯@êÿ˛ò0,s…8:Œ ««<ìÅg9`ÿ˚ ˚ ¸◊˚ ˘¸◊˚p˘¸Äÿ¡¡¡¡¡ò@@¯@¯®äËÇ¡¡¡¡¡¡¡¡˝@ Ë¸–˝¿`¸–˛ @@–˛ GûB¥fikÖ†    „—˛BIM[I)¿§Ä“˛ ‰QéRQQÄH—˛$í–h§“ñ!iÄ“˛ ˚,éá$¨˙:F “˝ ˝ œ ˝ ˝ Ã ˝p˝pá ˛‡ ‡À ˛ ÄÀ ˛      ˛º(Ñ÷ÄÕ ˝â”Z
  332. cÃ˛Q)ú
  333. "BÃ˛S≠| 'ÑÃ˛ çH≥ú;öÑá¡¡¡ ˛“¸ Õ ˝∂¸Õ˛$@Õ˛$—˛çÁhÕ˛$RSH∞Õ˛H°"P†Õ˛m,§'ë@Õ˛I˜$é@xºÕ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įËä(Ç¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯(ähÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿Ú¯¿Ú¯häöÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@¯@¯®äËÇ¡¡¡¯ˇˇÕ ˘¿ˇ¿œ ˘|˛Ä–˙¿¸ˇ–˙˛¯˛—˙    p‡¸“˚¿0IJ¯”˚˛0˜¸‘˚x˛ú˚‡’¸¿˛p˙<’¸˝{¿˙’¸x˛Œ˘Ä÷˝¿˛8˘Ä÷˝˝=‡˘ Ä÷˝8˛Ô¯8Ä÷˝‡˛x¯`¿÷˛IJ?¿˘¿@÷˛˛¸¯@÷˛8˛‡¯@÷˛‡˛˜8@÷Ä˜`@÷˛į¿@÷8˛¸˜@÷‡¿˜@÷Ä>ˆ8@÷ˇ˝˚`@÷¿˝Ä˛«¸¿¿÷p|˛¸¸¿÷Ô«¸¿¯@÷ˇˇÁ¯¯8 @÷    ?è¸0˚`@÷    IJ¿Ò¯¸¿0@÷˛¯Äp¸‡@÷˝¸|¸Ä@÷¸ÁÚG‡˝8;¿÷
  334. 8¿?@>˝`ÓÄ÷8¸!˙x‡¿åÄ÷0˛ œ¿?Ä÷0˜†x| Ä÷06„Ć«‡’ %È¿∞~>¡0p’ -¿‡–„‡y‡¿ ’ i¿pX–?< ¿Ä’0)‡0HÿÁÑp’0)¿hà<Ê ¿’)‡(à≤8Ä’    (Ëò(˛“ w‘    (( ˛[ Ã‘     <¯,Ñ˛I ò‘     ~8$ƒ˛i`0‘>$‰>)‡ ‡‘¯$<t3-Ä 9Ä‘Äè¯,(¥ü¿$Ä c”¿«(8~<Ä Δ”‡`P(ÙÄp#ú”¯π(*""$Ä¿&0”nœ¿(
  335. ÉÄ,`”;ÄÄ( Ü9¿” ‡˝    (ÚààÖ#“<˝    8‚0“áIJ    p‡“ò@@į@įËä(Ç¯˛    P""%Äp“˛    P0¿“Ň–ƒ Ä“˛ ‡>∞ƒ>ààç—˛ <†L     —˛ ‡†»Ä    8—˝ ?ø˛9`—˝ ˇ¯È¿—¸Åɡ–˛{–˚¸˛R–˚‡˛r–˙>˛Êp–˙‡§¿– ˘Ä?ÔÄ–
  336. ¯¯˛fiœ
  337. ¯¿ˇ¯œ˜~ûŒ˜ÛpŒˆ¿Œ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯(ähÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿¯¿¯hä®Ç¡¡¡¡¡¡¡¡¡¡¡¡ ˛ò8òÀ ˛ÑÄÀ ˛ å ˛      î⁄–ÄŒ˛    @ §6äc@Œ˛    F@—~$îCÄŒ˛ÄBK%ÑÕ˛    ¸ 8w>ÉÄŒ¯ÄïÄïÀ¡˛˛0<¿—˛˚
  338. @—˛˝DÄ—˛Õ˜    1dɺÂÑ    ÛG 7LM4ÿ˛F"Rf§ÑPFö
  339. 4QIIµ¶Hÿ˛B¢
  340. G-PDú
  341. 8¢Ñ â%ƒàÿ˛D¥ ò6†â  @¥≤&ûNúÿ˛9$Á$ â9'‹jI»hÿˆ Õˆ¿ÕˆÄÕ¡˛ ò‡Ä¿—˛˛êÄ@—˛˛Ä@“˛!<—¡I¥é‚“˛FîRA    πi"KXëM“˛G(° rBãê!N“˛à-,Ç" ÉDî !"ê“˛I˜¡»r9c†1铈ՈՈČ¡˝√¿ 0p‡ ÷˛$¢˚â¸÷˝H≤˛ Ä ÀÄ÷˛à¨8˝Œ2L¢∞ń苇Qÿ˝GD    Eîí[M@îYI!¶¥Hÿ˝BDÖ(àîNARàÇ'8àÿ˝DHäm$% Å(¶“B¯@êÿ˛ò0,s…8:Œ ««<ìÅg9`ÿ˚ ˚ ¸◊˚ ˘¸◊˚p˘¸Äÿ¡¡¡¡¡ò@@¯@¯®äËÇ¡¡¡¡¡¡¡¡˝@ Ë¸–˝¿`¸–˛ @@–˛ GûB¥fikÖ†    „—˛BIM[I)¿§Ä“˛ ‰QéRQQÄH—˛$í–h§“ñ!iÄ“˛ ˚,éá$¨˙:F “˝ ˝ œ ˝ ˝ Ã ˝p˝pá ˛‡ ‡À ˛ ÄÀ ˛      ˛º(Ñ÷ÄÕ ˝â”Z
  342. cÃ˛Q)ú
  343. "BÃ˛S≠| 'ÑÃ˛ çH≥ú;öÑá¡¡¡ ˛“¸ Õ ˝∂¸Õ˛$@Õ˛$—˛çÁhÕ˛$RSH∞Õ˛H°"P†Õ˛m,§'ë@Õ˛I˜$é@xºÕ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įËä(Ç¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯(ähÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿Ú¯¿Ú¯häöÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@¯@¯öä⁄Ç¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@į⁄äÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯äZÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿¯¿¯ZäöÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@¯@¯öä⁄Ç¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@į⁄äÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯äZÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿Ú¯¿Ú¯ZäåÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@¯@¯öä⁄Ç¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@į⁄äÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯äZÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿¯¿¯ZäöÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@¯@¯öä⁄Ç¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@į⁄äÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯äZÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿Ú¯¿Ú¯ZäåÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
  344. o~„˛4n}o~ò@@˝@˝o~Ø{¡¡¡
  345. Ú¯ˇ‡€Ú˜ˇ€Ú˜ˇ€
  346. Û˜ˇ€
  347. Û˜ˇ€
  348. Û˜ˇ€
  349. Û˜ˇ€
  350. Û˜ˇ€
  351. Û˜ˇ€¯¿˝˜ˇ¸0·˘¯˝˜ˇ˝¸·˘˝˜ˇ˝·˘Ú˝˜ˇ˝ ˘Ä‚"    >Çê˝˜ˇ˝     éć@`PÈ"    "Çê<˝˜ˇ˝    
  352. Äê@@PÈ$
  353. #Δ„ì˛‡(IJ˜ˇ˝
  354. ¿ì3RÊ·“˛pÍ$
  355. >oíRôêhIJ˜ˇ˝
  356. @Á¸“ië2YHÍ$
  357. #≠íRôêhIJ˜ˇ˝
  358. @îl“ië2YHÍ$
  359. "Êìéfiê(IJ˜ˇ˝
  360. @ì≥NfëŒ~H͢,˝˜ˇ˝¿‚˘4˝˜ˇ˝ Ä‚˘˙˝˜ˇ˝›Ä‚˘Œ˝˜ˇ˝s·˘8˝˜ˇ˝fi·˘‡˝˜ˇ¸p·
  361. Û˜ˇ€
  362. Û˜ˇ€
  363. Û˜ˇ€
  364. Û˜ˇ€
  365. Û˜ˇ€
  366. Û˜ˇ€
  367. Û˜ˇ€
  368. Û˜ˇ€
  369. Û˜ˇ€
  370. Û˜ˇ€
  371. Û˜ˇ€
  372. Û˜ˇ€
  373. Û˜ˇ€
  374. Û˜ˇ€
  375. Û˜ˇ€
  376. Û˜ˇ€
  377. Û˜ˇ€
  378. Û˜ˇ€
  379. Û˜ˇ€
  380. Û˜ˇ€
  381. Û˜ˇ€
  382. Û˜ˇ€
  383. Û˜ˇ€
  384. Û˜ˇ€
  385. Û˜ˇ€
  386. Û˜ˇ€
  387. Û˜ˇ€
  388. Û˜ˇ€
  389. Û˜ˇ€
  390. Û˜ˇ€
  391. Û˜ˇ€
  392. Û˜ˇ€
  393. Û˜ˇ€
  394. Û˜ˇ€
  395. Û˜ˇ€
  396. Û˜ˇ€ò@@Ä˝@Ä˝Ø~Ô{
  397. Û˜ˇ€
  398. Û˜ˇ€
  399. Û˜ˇ€
  400. Û˜ˇ€
  401. Û˜ˇ€
  402. Û˜ˇ€
  403. Û˜ˇ€
  404. Û˜ˇ€
  405. Û˜ˇ€
  406. Û˜ˇ€
  407. Û˜ˇ€
  408. Û˜ˇ€
  409. Û˜ˇ€
  410. Û˜ˇ€
  411. Û˜ˇ€
  412. Û˜ˇ€
  413. Û˜ˇ€
  414. Û˜ˇ€
  415. Û˜ˇ€
  416. Û˜ˇ€Û˜ˇ¸p·Û˜ˇ˝‹·Û˜ˇ˝'·Û˜ˇ˝ ˘Ä‚Û˜ˇ˝ éÄ‚˘‡˝˜ˇ˝
  417. Ä‚     <     8˝˜ˇ˝¡¯@Á           Ï˝˜ˇ˝@@@Á!    #s0Ê9?Ó 4˝˜ˇ˝@NÜ«'Ì¿Ë!    >˚6%)ô˝˜ˇ˝@MOÑ•S Ë!    "n¿÷%)ô˝˜ˇ˝¿MHÑ•S Ë!    >;8v8ÌÈ˝˜ˇ˝ ÄMGáÌ Ë˘ ¸˝˜ˇ˝›Ä‚˘ »˝˜ˇ˝s·˘8˝˜ˇ˝fi·˘‡˝˜ˇ¸p·
  418. Û˜ˇ€
  419. Û˜ˇ€
  420. Û˜ˇ€
  421. Û˜ˇ€
  422. Û˜ˇ€
  423. Û˜ˇ€
  424. Û˜ˇ€Ú˜ˇ€Ú˜ˇ‡€
  425. Ú?¯ˇ¿€¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Äú˝Äú˝Ô~ {¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡òŞ@˝HHÄ≠$≥IJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  426. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@˝o~Ø{'ÅÅÅÉÅÅÅÉÅÅÅÉ
  427. àØˇÅÅŒ]⡡˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›ˇˇÅÅœ]âˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœäˇˇØfiˇÅÅœ^䡲fi›˛fi›ˇˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœLäˇfi›˛fi›fifiˇˇ˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiÌˇ›fiˇÅÅœäˇ˙fi˝ˇœfiˇÔfiˇfifiˇÅÅœRäˇfi›˛fi›fiˇˇ›ˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fifi˚ˇ˛fi˜ˇfifi›˛fi›fifiˇ›fiˇÅÅœL䡲fi    ›fifiˇˇfifiˇˇfi˙ˇ˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi˘ˇ›fi˜ˇ›˛fi›˛fi›ˇfifiˇÅÅœ0πˇˇ‘ˇ˚fi˚ˇfi˙ˇ‚fi˛ˇ˛fiˇˇfifi˜ˇ¯fiˇfifiˇ”ˇˇÅŎYª˙ˇ◊ˇ˛fi›fifiˇ›˛fiˇfi˚ˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi˛ˇfi›˛ˇ›fi˜ˇ›˛fi›˛fi›ˇfifiˇ÷˙ˇÅÅbæ˝ˇ¸˛ˇŸˇfi›˛fiˇˇfifi›fiˇfi˚ˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇˇ›fifi˛ˇfifi˜ˇfifi›˛fi›fifiˇ›fiˇÿ˛ˇ¸˛ˇÅÉ6æˇ˚ˇˇŸˇÙfi˚ˇ·fi˘ˇfifi˜ˇ¯fiˇfifiˇŸˇˇ¸ˇˇˇÅÑ옸ˇ¯ˇ¸ˇ¯ˇˇÍˇˇˇ˝ˇˇˇˇ⁄ˇfi›˛fi›˛fi›˛fi˚ˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fi˘ˇfifi˜ˇfifi›˛fi›fifiˇ›fiˇŸˇ˛ˇ˛˛ˇˇ˙˛ˇÛˇ˙ˇˇıˇ¯ˇˇÅøö˜ˇ˛ˇ¯ˇ¸ˇ¯ˇˇÎ˝ˇ˚ˇˇˇ⁄ˇ˛fi›˛fi›˛fi›fi˚ˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fifi˛ˇfifi›˛ˇ›˛fi˘ˇ›˛fi›˛fi›˛fiˇŸˇˇ˙ˇˇ˙ˇˇÙˇ˙ˇÙˇ¯ˇˇÅøà˜ˇ˛˝ˇ˛ˇˇ˛ˇ˛˛ˇˇ¯ˇ˛ˇÚˇˇ˘ˇˇˇ€ˇÙfi¯ˇÂfi˛ˇ˛fi˛ˇıfi˙ˇ¸fiˇ⁄˝ˇ˙˝ˇ˚ˇˇˇˇˇˇˇˇˇˇˇ˛ˇˇˇ˛ˇ˝˛ˇˇˇ˙ˇ˛ˇÅ«Ã˜¸ˇˇˇ¸ˇˇˇˇˇˇˇˇˇˇˇˇÙˇˇˇ˘ˇˇˇ€ˇ˛fi›˛fi›˛fi›fi˘ˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fifi˛ˇ
  428. fifi›ˇˇfi›fiˇfi›˛fi›˛fi˘ˇ›ˇfifiˇ⁄ˇˇ¯ˇˇ˚˛ˇ¯ˇˇˇˇˇˇˇˇˇˇˇ˛ˇˇˇˇˇˇˇˇˇˇÅ»—˜ˇ˛˛ˇ"ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇÙˇˇˇ˘ˇˇˇ€ˇfi›˛fi›˛fi›˛fi˘ˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˘ˇ˛fiˇ˛fi›˛fi›fi˘ˇfiˇ›fiˇ⁄ˇˇ¯ˇˇ˚ˇˇˇ˛ˇˇˇˇˇˇˇˇˇˇˇˇˇˇ˛ˇˇˇˇˇˇˇˇˇˇÅ»ü˜ˇ˛ˇ˛ˇ
  429. ˇˇˇˇ˛ˇ˛˛ˇˇˇ˝ˇˇˇÛˇˇ˘ˇˇˇ€ˇÙfi˘ˇ‰fi˘ˇ˛fiˇ¯fi˘ˇfiˇfifiˇ⁄ˇˇˇ˙ˇˇˇ˚ˇˇ˛ˇ
  430. ˇˇˇˇˇ˛ˇ ˇˇˇˇˇˇ˛˛ˇ˛ˇ˚ˇˇˇÅ»gøˇˇˇ˙ˇˇ⁄ˇfi›˛fi›˛fi›˛fi˘ˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fi˙ˇ˛fiˇ˛fi›˛fi›fi˘ˇfiˇ›fiˇ⁄ˇˇˇ˙ˇˇˇÅÖmøˇˇˇ˚˝ˇ⁄ˇ˛fi›˛fi›˛fi›˛fi›˝ˇ˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇfi›˛fi›˛fi˘ˇ›ˇfifiˇŸˇˇˇ¸ˇˇˇÅÑ4æˇ˘ˇˇŸˇÒfi˝ˇÿfiˇ¯fi˘ˇfiˇfifiˇŸˇˇ˛ˇ˛ˇˇˇÅÑoæ˛ˇˇˇ˛ˇŸˇ˛fi›˛fi›˛fi›˛fi›˝ˇ˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇfi›˛fi›˛fi˘ˇ›ˇfifiˇÿˇˇ˛ˇˇˇÅÉmº˛ˇ˛ˇ◊ˇfi›˛fi›˛fi›˛fi›fifi˛ˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇ˛fi›˛fi›˛fi›˛fi›fifiˇ›fiˇ◊˝ˇ˝ˇÅÇ∫˝ˇ’ˇÒfi˛ˇ◊fiÌˇfifiˇ‘˛ˇÅŎ^äˇfi›˛fi›˛fi›˛fi›fifi˛ˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœ\䡲fi›˛fi›˛fi›˛fi˝ˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœäˇÚfi˛ˇ¿fiˇÅÅœ]䡲fi›˛fi›˛fi›˛fi˛ˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœ]äˇfi›˛fi›˛fi›˛fi›fi˛ˇ˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœäˇÚfiˇˇøfiˇÅÅœ^äˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœ^䡲fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœ䡓fiˆˇËfiˇÅÅœU䡲fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇˇ›fifiıˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœVäˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fifi˛ˇfifi›ˆˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœäˇŸfi˛ˇ˛fi˝ˇ‡fiˇÅÅœ[äˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fi˝ˇfifi›˝ˇ˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœ[䡲fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi˝ˇ›fifi˝ˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœäˇ⁄fi˝ˇ˛fi˝ˇ‡fiˇÅÅœ[䡲fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi˝ˇ›fi˝ˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœ\äˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fi˝ˇfifi˝ˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœäˇŸfi˛ˇfifiıˇÁfiˇÅÅœWäˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇ˛fi›fi˜ˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœT䡲fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›ˇˇfi›˛fiıˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœäˇ⁄fi˛ˇÙfi˝ˇÈfiˇÅÅœ[䡲fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi˛ˇfi›˛fi›˛fi›˛fi˝ˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœ\äˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fi˛ˇ˛fi›˛fi›˛fi›fi˝ˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœäˇ⁄fi˛ˇÙfi˛ˇËfiˇÅÅœ[äˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˝ˇ˛fi›˛fi›˛fi›fi˛ˇ˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœ\䡲fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fifi˝ˇfi›˛fi›˛fi›˛fi˛ˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœ䡀fi˝ˇÙfi˛ˇËfiˇÅÅœT䡲fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi˛ˇfi›˛fiˆˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœTäˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fifiˇˇ˛fi›ıˇ˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœ䡔fiˆˇÁfiˇÅÅœ^äˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœ^䡲fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœ䎯fiˇÅÅœ^䡲fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœ^äˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœäˇÈfi˛ˇ¸fiıˇ¸fi¯ˇËfiˇÅÅœòŞ@Ä˝HHÄ≠$¥Ä˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  431. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@Ä˝Ø~Ô{'^äˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›fifi˛ˇfifi›fifiˇˇ˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇ˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœR䡲fi›˛fi›˛fi›˛fi›˛fi›fifi˙ˇfi˝ˇfi¯ˇ˛fi›˛fi›˛fi›fiˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœäˇÎfi˙ˇfi˝ˇfiÏˇfiˇËfiˇÅÅœH䡲fi›˛fi›˛fi›˛fi›˛fi›fifi˙ˇfiˇ›fiˇfiÏˇfiˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœLäˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›fifi˛ˇfifi›ˇfifiˇfiÏˇfiˇ˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœäˇÈfi˛ˇ˛fiˇfifiˇfiÏˇfiˇËfiˇÅÅœLäˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›ˇfifiˇfiÏˇfiˇ˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœK䡲fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fifi˝ˇfiÏˇfiˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœ䡷fiˇˇÍfiˇËfiˇÅÅœG䡲fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›Áˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœFäˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fifiÁˇ˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœ䎯fiˇÅÅœ^äˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœT䡲fi›˛fi›˛fi›fifiÙˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœäˇÛfiˇˇ¯fiˇˇ…fiˇÅÅœU䡲fi›˛fi›˛fi›ıˇfiˇˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœ^äˇfi›˛fi›˛fi›fifiˇ›˛fi›˛fi›fiˇfiˇˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœ䎝fi˘ˇ˚fiˇfiˇˇ…fiˇÅÅœXäˇfi›˛fi›˛fi˘ˇ›˛fi›fiˇfiˇˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›ˇˇfi›˛fi›˛fi›fiˇÅÅœ]䡲fi›˛fi›fiˇfi›˛fi›fiˇfi›˛fiˇfiˇˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fi˝ˇfifi›˛fi›˛fiˇÅÅœ&䎝fiˇ˙fiˇˇ˝fiˇfiˇˇÿfi¸ˇ˜fiˇ‘˛ˇÅŎ_䡲fi›˛fi›fi¸ˇfi›fi˛ˇ˛fiˇfiˇˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fifiˇ›˛fi›¸ˇfifiˇˇfifi›˛fiˇ÷˛ˇ˛ˇÅÅYäˇfi›fifiÛˇ fifiˇ›fiˇfiˇˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi˝ˇ›˛fi˛ˇfi›fi˛ˇ˛fi›fiˇÿ˛ˇˇ˛ˇÅÉ4䡽fiÛˇfifiˇfifiˇfiˇˇfifi˝ˇ˝fiˇ˝fi˝ˇ˝fiˇŸˇˇ¸ˇˇˇÅÑgäˇfi›˛fiˇ˛fi›˛fi    ›fifiˇ›fifiˇ›fi˝ˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›¸ˇfifi›˛fi›fifi˛ˇfifi›fiˇŸˇ˛ˇ˛˛ˇˇÅÑf∫˝ˇ’ˇ˛fi›fiˇfi›˝ˇ fiˇˇ›ˇfifi›ˇfifiˇ˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fifi˙ˇfifi›˛fi›fi˛ˇ˛fiˇŸˇˇ˙ˇˇÅÑ]˜˝ˇÍˇˇ˛ˇ¯ˇˇÙ˛ˇ˛ˇ◊ˇ¸fiˇfifi˝ˇfiˇˇfiˇ˛fi˝ˇ‹fi˛ˇfi¸ˇ˙fi˛ˇ˛fiˇ⁄˝ˇ˙˝ˇ¸˚ˇÒˇ¯ˇˇÅ≠í˜ˇÁˇˇ˛ˇ¯ˇˇıˇˇ˝ˇˇˇÿˇ˛fi›fiˇfi›˝ˇ fiˇˇ›ˇfifi›ˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fi˛ˇfifi¸ˇ›˛fi›fi˛ˇ˛fiˇ⁄ˇˇ¯ˇˇ˙ˇÓˇ¯ˇˇÅ≠√˜ˇ˛ˇˇ˛ˇˇˇˇˇ˝˛ˇˇˇ˛˛ˇˇ¯ˇ˛ˇ¸    ˇˇˇˇˇˇÿˇfi›˛fiˇfifi˝ˇfiˇˇfi¸ˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇˇfifi›fi˚ˇ›˛fi›ˇˇfi›fiˇ⁄ˇˇ¯ˇˇ˙ˇ˛ˇˇ˝ˇˇˇˇ˛˛ˇˇ˚ˇˇˇ˛ˇÅµò˜¸ˇ˝˜ˇ    ˇˇˇˇˇˇ˛ˇˇˇˇˇˇˇˇˇˇ˛ˇˇˇ˝ˇˇÿˇ¸fiˇfifi˝ˇfiˇˇfiˇ’fiˇˇ¸fi˚ˇ˝fiˇˇ˛fiˇ⁄ˇˇˇ˙ˇˇˇ˙
  432. ˇˇˇˇˇ¸ˇ˝ˇˇˇˇˇˇˇˇˇˇÅ∂”˜ˇ˛ˇˇˇ˛ˇˇˇ˚ˇˇˇˇˇ˛ˇˇˇˇˇˇˇˇˇˇ˛ˇˇˇ˝ˇˇˇŸˇfi›˛fiˇfifi˝ˇfiˇˇfiˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi˛ˇfi›˛fi¸ˇ˛fi˛ˇfi›fiˇ⁄ˇˇˇ˙ˇˇˇ˙ ˇˇˇˇˇˇ˛ˇ˝ˇˇˇˇˇˇˇˇˇˇÅ∂Δ˜¸ˇ˛˛ˇˇˇ˛ˇ˝˛ˇˇˇ˛˛ˇ˛˛ˇˇˇ˝ˇˇˇ˛ˇˇˇ˝ˇˇÿˇ˛fi›fiˇfi›˝ˇfiˇˇ›ˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fi˛ˇ˛fi›fifi˛ˇfifi›fi˛ˇ˛fiˇŸˇˇˇ¸ˇˇˇ˘ˇˇˇˇˇ˛˝ˇ˝˛ˇ˛˛ˇ˝ˇˇˇˇˇÅ∂9Ωˇ˘ˇÿˇ¸fiˇfifi˝ˇfiˇˇfiˇ‘fi˛ˇˆfi˛ˇ˝fiˇŸˇˇ˛ˇ˛ˇˇˇÅÑuΩˇˇˇˇˇ◊ˇ˛fi›fiˇfi›˝ˇfiˇˇ›ˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fifi˛ˇfifi›˛fi›˛fi›˛ˇ›˛fiˇÿˇˇ˛ˇˇˇÅÉjº˛ˇ˛ˇ◊ˇfi›˛fiˇfifi˝ˇfiˇˇfiˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fi˛ˇ˛fi›˛fi›fi˛ˇ˛fi›fiˇ◊˝ˇ˝ˇÅÇ,∫˝ˇ’ˇ¸fiˇfifi˝ˇfiˇˇfiˇ”fi¸ˇ¸fi¸ˇ¸fiˇ‘˛ˇÅŎSäˇfi›˛fiˇfifi˝ˇfiˇˇfiˇ›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fifiÙˇ›˛fi›fiˇÅÅœX䡲fi›fiˇfi›˛fi›˛fi›ˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fifi¯ˇ›˛fi›˛fiˇÅÅœ䡸fiıˇÕfi˝ˇ˜fiˇÅÅœU䡲fi›fiıˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇÅÅœ^äˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœ䎯fiˇÅÅœ^䡡›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fiˇÅÅœ]âˇfifi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fi›fifiˇˇÅÅœⲡ≥fiˇˇÅÅŒ
  433. ᱡÅÅÕÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉòŞÄú˝HHÄ≠$µÄ˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  434. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêêÄú˝Ô~ {'ÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉò@@˝@˝ ~K{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ˝`‡ 0>`à ˝ @H"À ˝@Ä"à Àò@@Ä˝@Ä˝K~ã{˝ÄÄBà8gkBŒ˝ÄBpH⁄)çŒ˝D @íQŒ˝H@A,ñŒ˝1Ä·‹˙Œ˜"Ø"Øá ˝^6à ˝â0à ˝êÄ  Ã˝ ĶÔ#rÕ˝ ÉM$§íÕ˝ !Hà»äÕ˝c"ÚIiÃÕ˝ú|flñFàÕ¯Õ¯Õ¯8`Õ¡˝`IJc—˝ @˛!—˝@ ˛R“˝ÑÛG!$Ds¬–R;à”˝QI&§â-`JE4”˝¢ÑG)…
  435. .@LÖ8”˝ ¥≤à2PÄÑä@”˝'‹!»Âéăr8”ıŒıŒıŒ¡˝ p˛
  436. 0¿A¿Äÿ˝íà˚@√ ¸Äÿ˝"»˛ÄDzÄ◊˝"∞x„˜8…2àÇ8˝ŒèŸ˝%RHIm4Ç    EîíkDÄ⁄˝    F¢ ZQ8ÇÖ(à"sàÄ⁄˝ J)¥êló¿äm$/Ñ    Ÿ˝`¿±œ$‡HÎ8Éé8,s…8sñŸ˙Ä˚Ä ¸Ÿ˙į ¸Ÿ˚¿¯p¸8Ÿ¡¡¡¡¡¡¡¡¡¡¡¡¡˝Ä†¸8—˝Ä@¸—˝ @ —˝ y”yÆÄ'å“˝         %4m$§k"í“˝ ëF8!IEDrE “˝ íK@¢ìJXÑE¶“ò@Äú˝Äú˝ã~ß{˝3Ï≤8í≥ËtÈÄ”¸ Ä˝Ä– ¸ Ä˝ÄÕ ¸q¿˛¿Õ¡ ˝Ä0;Äà ˝ÄÀ ˝Ä $À˝¢87ZÕ˝$SMh(IåÕ˝D§Np(âÕ˝NµÄDûÕ˝.5"ŒpÓjÕ¡¡¡¡ ˝H¸00Œ ˝ÿ¸HHŒ˝ê@Œ˝ìG˙7ù†`Œ˝ëILI"¿Œ˝    "ÑHâBÄ Œ˝    ¥≤êûEHŒ˝'‹êj9‚Œ¡¡¡òŞ@˝HHÄ≠$∂IJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  437. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@˝ ~K{'ÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉ(fi˝ˇˇˇ¸˛ˇ¯ˇˇ˝ˇˇ˚¸ˇˇˇÅÅÅ÷)›ˇ¸ˇ˚ˇ¯    ˇˇˇˇ¸ˇ˛ˇÅÅÅ“&›ˇ˝ˇ˚ˇ¯ˇ˛ˇˇ˛ˇ¸ˇÅÅÅŒòŞ@Ä˝HHÄ≠$∑IJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  438. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@Ä˝K~ã{'=‹ˇˇ˙ˇ˘ˇ˝ˇˇ˛ˇ¸˛ˇ˝ˇˇ˛ˇ    ˇˇˇˇˇˇ˝ˇÅÅÅÍ@‹ˇˇ˘ˇ˘ˇ˝ˇ˛ˇ¸ˇˇ˛ˇˇˇˇˇ˛ˇˇˇˇ˛ˇˇˇÅÅÅÎ@‹ˇˇ˛ˇˇˇ˚ˇˇˇ˛ˇ˝ˇ˚ˇ˚ ˇˇˇˇˇ˛ˇ˝˛ˇÅÅÅÍ;‹ˇˇ˘ˇ˝ˇ˝ˇˇ˝ˇ˙ˇ¸ˇˇˇˇˇˇˇˇ˝ˇÅÅÅÁ2‹ˇ˘˚ˇ˚ˇˇ˛ˇˇ˙˛ˇ˝˛ˇ˛ˇ¸ˇˇ¸˛ˇÅÅÅÍØˇ˛ˇÅÅÅ⁄Øˇ˛ˇÅÅÅ⁄ Æ˛ˇÅÅÅŸÅÅÅÉ"‹˛ˇ¸˛ˇˇ˝ˇˆˇˇˇˇıˇÅÅÅ◊$€ˇ¸ˇ˛ˇ˛ˇˇˆˇÛˇˇÅÅÅ◊#‹ˇ¸ˇ˝ˇˇ˝ˇ¯ˇÚˇÅÅÅ÷9‹ˇ˝ˇ˘ˇ˝ˇ˙ˇˇˇˇ˛ˇ˝ˇˇ˛ˇˇ˛ˇˇÅÅÅ‚<‹ˇ˝ˇ˘ˇ˝ˇ¸ ˇˇˇˇˇˇˇˇˇˇˇˇˇˇÅÅÅ‚=›ˇ¸ˇ˙ˇ˝ˇ¸ˇ˛ˇˇ˛ˇ˛ˇ˛ˇˇˇ˛ˇ˛ˇˇÅÅÅ‚?›ˇ˝ˇˇ˛ˇˇˇ˛ˇ˚ˇ¸ˇˇˇˇˇˇˇˇ˛ˇˇˇÅÅÅ·4fi˚ˇ˛ˇ˛¸ˇ˘ˇˇˇ˚ˇˇˇˇˇ˛ˇˇˇ˛ˇÅÅŇ∂ˇÒˇÅÅŇ∂ˇÚˇÅÅÅfl∑˛ˇıˇˇÅÅÅfiÅÅÅÉ!fi˝ˇˇˇÁ˝ˇÏˇÁˇˇ˛ˇˇÅÅÉ"›ˇ¸ˇÊˇˇÓˇˇÊˇ˝ˇÅÅÉ'›ˇ˝ˇÊˇ˝ˇÔˇÊˇˇˇ˘ˇÅÅãa‹ˇˇ˝ˇ˝ˇˇˇˇ˛˛ˇ¸ˇ˝ˇ˝ˇˇˇ˛ˇ˛ˇ˛˛ˇ˝ˇ˝ˇˇˇˇ¸ˇˇˇ˛˛ˇ˛ˇ˛ˇÅÅêl‹ˇˇ˛ˇˇˇˇˇ˛ˇˇˇˇ¸ˇ˝ˇˇˇ˛ˇˇˇˇˇˇˇ˛ˇˇˇˇˇˇˇˇ˚ˇˇˇˇ˛ˇˇˇˇˇÅÅëc‹ˇˇ˛˛ˇˇˇ˛ˇˇ˝ˇ˚ˇ˝ˇ˛˛ˇˇˇ˛ˇˇˇ˝ˇˇ˛ˇ˛ˇˇ˙ˇˇˇˇ˝ˇˇ˛ˇÅÅê`‹ˇˇ˛ˇ¸ˇˇˇˇˇˇˇˇ¸ˇ˛ˇ˛ˇ¸ˇˇˇ¸ˇˇˇ˛ˇˇˇˇ˝ˇ˙ˇ˝ˇˇ˛ˇˇˇÅÅçW‹ˇ¸˛ˇˇˇ¸ˇ˛ˇ¸¸ˇ¸˛ˇˇ˝˛ˇˇ˛˛ˇˇˇˇ˛˛ˇˇ˙ˇˇ˛ˇ˛˛ˇˇ˛˛ˇÅÅê úˇÅÅÅÈ úˇÅÅÅÈ ù˛ˇÅÅÅÍÅÅÅÉ9€ˇˇ˝ˇˇ˛˛ˇÔˇˇÁˇˇ˝ˇˇÚˇ¸ˇ¸ˇÔˇˇÏˇˇÅÅ¥0‹ ˇˇˇˇˇ˛ˇÕˇÛˇˇ˝ˇˇ˝ˇˇ◊ˇÅÅ¥3⁄ˇˇ˛ˇˇˇˇËˇËˇÚˇ¸ˇ¸ˇÊˇÛˇÅÅ≥x‹ˇˇ˛ˇ˛ˇˇˇˇ¸˝ˇ˛˛ˇ˛˚ˇ˛ˇ˛ˇ˛ˇˇˇˇˇˇˇˇ˛ˇˆˇ¸ˇ¸ˇ˚˝ˇ˛˛ˇ˛˚ˇ˛ˇ˛ˇ˚ˇˇ˛ˇ˝ˇ˛˝ˇÅÅ√é⁄ˇ˛˛ˇˇ˛ˇ˚ˇˇˇ˛ˇˇˇˇˇˇˇˇ˝ˇˇˇˇˇˇˇˇˇˇˇ˜ˇ¸ˇ¸ˇ˙ˇˇˇ˛ˇˇˇˇˇˇˇˇ˝ˇˇˇˇˇˇˇˇˇ˛ˇˇÅŃà⁄ˇ˝ˇˇ˛ˇ¸ˇ˛ˇˇ˝ˇˇˇˇ˛ˇ˛ˇ˚
  439. ˇˇˇˇˇˇ˛ˇ˛ˇˆˇ¸ˇ¸ˇ˚ˇ˛ˇˇ˝ˇˇˇˇ˛ˇ˛ˇ¸ˇ˛ˇ˛ˇ˛ˇ˛ˇ˛ˇÅŃÄ⁄ˇ˛ˇ˛ˇˇ˚ˇˇˇ˛ˇˇˇˇˇˇˇˇˇ¸ ˇˇˇˇˇˇ¸ˇÙˇ¸ˇ¸ˇ˙ˇˇˇ˛ˇˇˇˇˇˇˇˇˇ˝ˇ¸ˇ˝ˇ˚ˇˇÅÅ√Üfi˝ˇˇˇ¸ˇˇ˚ˇˇˇ˛˛ˇ˝ˇˇˇ˛ˇ˚ˇˇ˛˛ˇˇˇˇ˛ˇ˛ˇ¸˛ˇ˛˛ˇ˛˛ˇ¸ˇˇˇ˛˛ˇ˝ˇˇˇ˛ˇ˚ˇˇˇ˛ˇ˛ˇˇˇˇÅŬ…ˇ ˇËˇ—ˇÅÅø…ˇ∞ˇ—ˇÅÅø ˛ˇ≤˛ˇ”˛ˇÅÅ¿ÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉ⁄ˇÒˇÙ˛ˇˇ“˛ˇÅÅÅ€ˇˇÚˇˇıˇ˛ˇ–ˇÅÅŎ"‹ˇˇÚˇıˇ˝ˇÊˇÌˇÅÅŞR‹ˇˇ˛˝ˇ˝ˇˇ˝ˇ˚ˇ˘˛ˇ    ˇˇˇˇˇ˝ˇˇˇˇ˛ˇ˝ˇˇˇˇ¯ˇ˝ˇ˛ˇˇÅÅâ^›ˇˇ˝ˇˇˇˇˇˇˇˇ¸ˇ˙ˇ˛ˇˇˇˇˇˇˇˇˇˇˇ˛ˇˇˇˇˇ˜ˇ˛ˇˇˇˇÅÅäT›¸ˇˇ˛ˇˇ˛ˇˇ˛˛ˇ˚ˇ˚ˇ˝
  440. ˇˇˇˇˇ˛ˇˇˇ˛ˇ˛˛ˇˇ˜ˇ˛ˇˇˇÅÅÜ]fiˇ˝ˇˇˇˇˇˇˇˇ¯ˇ˛ˇˇˇ˛ˇˇˇˇˇˇˇˇˇˇˇ˛ˇ˝ˇˆˇ˛    ˇˇˇˇˇˇÅÅäòŞÄú˝HHÄ≠$∏IJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  441. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêêÄú˝ã~ß{'\flˇˇ¸ˇ ˇˇˇˇˇˇ˛˛ˇ˙˛ˇ˝˛ˇˇˇˇˇˇˇ¸ˇˇ˝˛ˇˇ¸ˇ˝˛ˇˇˇ˛ˇˇ˛ˇÅÅå◊ˇ¸ˇ⁄ˇÁˇÅÅŘ◊ˇ¸ˇ⁄ˇÅÅÅ‹ÿ˛ˇ˛˛ˇ‹˛ˇÅÅÅ›ÅÅÅÉ‹˝ˇˇˇÛ˛ˇ˛ˇÅÅÅ‘›ˇ˛ˇÔˇÚˇˇÅÅÅ“›ˇ˛ˇˇÚˇˇÅÅÅ—8‹ˇ¸ˇˇˇ˝ˇ˝ˇˇ˛ˇ˝ˇ˚˛ˇ¸ˇˇ˛ˇˇˇˇˇÅÅÅ‚@€ˇ˛ˇˇ˛ˇˇˇˇˇˇˇˇˇˇˇ¸ˇˇ˝ˇˇˇˇ˛ˇˇÅÅÅ·@fiˇ˛ˇˇ˛ˇˇˇˇ˛ˇ˛ˇ˛ˇ˚ˇˇ˛ˇ˛ˇˇ˝ˇÅÅŇ8fiˇ˛ˇˇ˛ˇˇˇˇˇ¸ˇ˝ˇ˘ˇ˛ˇˇ˝ˇ˝ˇÅÅÅfl@flˇ˛ˇ˛ˇˇˇˇˇ˛ˇˇˇ˛ˇ˛ˇ˝˛ˇ˛ˇˇˇˇˇ˝ˇÅÅÅflÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉ‹˛ˇˇˇ‘ˇˇ˚ˇˇÅÅÅÁ €ˇˇˇˇˇ’ˇˇ˝ˇˇÅÅÅË"‹ˇˇˇÙˇÙˇÓˇ˘ˇÅÅÅË;‹ ˇˇˇˇˇˇ˛˘ˇˇ˛ˇˇ˝ˇ˛ˇˇˇˇ˚ˇˇ¯ˇÅÅÅË@‹ˇˇˇ˛ˇˇˇˇˇˇˇ˛    ˇˇˇˇ˛ˇˇˇ¯ˇ˙ˇÅÅÅÁ>›ˇˇˇ˛ˇˇ˝ˇ˛ˇˇ˛ˇ˛ˇˇˇ˝ˇˇ˜ˇ˚ˇÅÅÅÊ@›ˇˇˇˇˇˇˇˇˇˇˇˇ˝ˇ˝ˇˇ˛ˇˇˆˇ¸ˇˇÅÅÅË=fi˛ˇˇˇ¸ˇ˛ˇˇˇ¸ˇˇˇˇ˛˛ˇˇ˙˝ˇ˛ˇ˝ˇÅÅÅÁÅÅÅÉÅÅÅÉÅÅÅÉò@@˝@˝ß~Á{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@Ä˝@Ä˝Á~'{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Äú˝Äú˝'~C{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡òŞ@˝HHÄ≠$πIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  442. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@˝ß~Á{'ÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉòŞ@Ä˝HHÄ≠$∫IJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  443. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@Ä˝Á~'{'ÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉòŞÄú˝HHÄ≠$ªÄ˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  444. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêêÄú˝'~C{'ÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉò@@˝@˝C~É{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@Ä˝@Ä˝É~√{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Äú˝Äú˝√~fl{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡òŞ@˝HHÄ≠$ºÄ˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  445. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@˝C~É{'ÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉòŞ@Ä˝HHÄ≠$ΩIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  446. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@Ä˝É~√{'ÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉòŞÄú˝HHÄ≠$æÄ˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  447. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêêÄú˝√~fl{'ÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉò@@˝@˝fl~{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@Ä˝@Ä˝~_{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Äú˝Äú˝_~{{¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡òŞ@˝HHÄ≠$øÄ˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  448. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@˝fl~{'ÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉòŞ@Ä˝HHÄ≠$¿Ä˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  449. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@Ä˝~_{'ÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉòŞÄú˝HHÄ≠$¡Ä˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  450. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêêÄú˝_~{{'ÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅÉÅÅÅɡT@ˇ ˇˇˇˇ@
  451. ˇ·ˇ‚7^
  452. 4*\¯, Palatino&e.3+l"CHAPTER à)>1,     Helvetica    ˇˇ—ÚˇÆ(@lIntroduction to the QuickTŸ$)aake 100 Camera4⁄*˙¯
  453. (‡*1-6    )BQuickT@)ake 100 Features4^*¿¯
  454. °dONLNd\lhÜ(elpicturÈ@°dONLNd\Üh¥) e is taken. Ê`°dONLNd\¥hª).A!°dONLNd\ºh») grı °dONLNd\«h)) een light in the view fi†Ä°dONLNd.\*hÅ)cnder indicates the fl+ °dONLNdC\Çh–)Xash is fully power˜°dONLNdU\–h)Ned and °dONLNd\ilu¨(rlthe camera is r»@°dONLNdki¨u)@eady to take a pictur˘°dONLNdÄiu)Ze.
  455. è*î¯4ê*ëlë¯
  456. ˇ·ˇ‚7^°dONLNdÉÑlêó(çl    Flash Offˇˇˇˇˇˇ‡(çÚ1°dONLNdéñl¢ã(ülIf the flİdONLNdóñ増) ash button is prÒ¿°dONLNdßñ–¢ )Dessed while flÍ@°dONLNdµñ ¢j)<ash on is active, the flY‡°dONLNdÕñk¢Ü)_ash-ofW‡°dONLNd”ñÜ¢Û)f setting becomes active. °dONLNdÌ£lØé(¨lIn the flö°dONLNdˆ£éØ©)"ash-ofò°dONLNd¸£©Ø)f setting, the QuickTû°dONLNd£Øó)Y!ake 100 camera does not use the flê@°dONLNd3£òØÀ)ñash. If the fl; °dONLNdA£ÃØ›)4ash °dONLNdE∞lºü(πl button is prΔ‡°dONLNdQ∞üº€)3essed while flø`°dONLNd_∞€ºı)<ash ofÈİdONLNde∞ıºi)f is active, the automatic-flY†°dONLNdÇ∞jº„)uash setting becomes active. 
  457. ⁄*·¯4€*·¯ ‹l‹¯
  458. ˇ·ˇ‚7^ °dONLNdüÕl€¬(◊lErase-All Buttonˇˇˇˇˇˇ‘@(◊Ò1
  459. °dONLNd±·lÌù(Íl
  460. When the ré¿°dONLNdª·ùÌ)1ecessed erase-all button is pr °dONLNdŸ·Ìñ)essed, all of the images currA†°dONLNdˆ·ñÌø)z
  461. ently stor–`°dONLNd·øÌÁ))
  462. ed in the °dONLNd
  463. Ól˙ó(˜l    camera ar≈İdONLNdÓó˙ı)+Se erased. During the period of time that it takes for the images to be erased, the °dONLNdf˚l(l#erase-all icon on the LCD display fl‚¿°dONLNdä˚$)õashes. ô`°dONLNdë˚$x)After the images ar'†°dONLNd§˚y≤)Ue erased, the °dONLNd≤lÜ(lpicturÈ@°dONLNd∏Üî)>es-available indicator displays the number of available picturı¿°dONLNdˆî—(îes for the currD¿°dONLNd“‚)>ent °dONLNd    l!o(lrE°dONLNd
  464. p!˙) esolution setting and the pictur*@°dONLNd*˙!É)ä es-taken indicator indicates zerO†°dONLNdJÉ!•)âo picturÆ`°dONLNdR•!fl)"es have been °dONLNd_"l.â(+ltaken. 
  465. L*S¯4M*S¯ NlN¯
  466. ˇ·ˇ‚7^ °dONLNdg?lMs*Tc@°dONLNdh?sM∞) imer Buttonˇˇˇˇˇˇ‘@(IÒ1
  467. °dONLNduSl_ó(\lDThe timer button allows you to initiate a 10-second time delay beforz °dONLNdπSó_¿(\ó
  468. e a pictur≠°dONLNd√S¿_Ó)) e is taken. °dONLNdœ`llu(ilPrN†°dONLNd—`vlZ)
  469. 6essing the shutter button after the timer button is pr °dONLNd`[lÒ)Â"essed causes a 10-second count to °dONLNd)mly°(vl elapse beforö`°dONLNd5m°y/)5"e the shutter is actually opened. İdONLNdWm/yÌ)é,An indicator light on the top of the camera °dONLNdÉzlÜÔ(Élis on for 8 seconds and then flÁ`°dONLNd¢zÔÜÒ)É<ashes rapidly for 2 seconds prior to the shutter opening to °dONLNdfiálì¨(êltake the pictura¿°dONLNdÌá¨ì´)@;e. While the camera is in a timer sequence, no other featur√@°dONLNd(á´ìŸ)ˇ es can be r°¿°dONLNd3áŸìÔ).eset. °dONLNd9îl†r(ùlY@İdONLNd:îr†Ù)ou can’t cancel a timed pictur9†°dONLNdXîÙ†¬)Ç/e sequence after the shutter button has been pr!İdONLNdáÍ)Œ    essed by °dONLNdê°l≠u(™lprG °dONLNdí°v≠ )
  470. 'essing the timer button a second time. 
  471. À*“¯4Ã*“¯ ÕlÕ¯
  472. ˇ·ˇ‚7^ °dONLNd∫ælà(»lResolution Buttonˇˇˇˇˇˇ‘@(»Ò1
  473. °dONLNdÕ“lfiÉ(€lThe rÄ¿°dONLNd““Éfi3)'esolution button toggles between high-rˇ‡°dONLNd˘“3fiì)∞esolution and standar˚¿°dONLNd“ìfi†)`d-r0`°dONLNd“°fiÊ)esolution picturˆ‡°dONLNd!“ÊfiÌ)Ee °dONLNd#fllÎ(Ël#modes. The maximum number of pictur^¿°dONLNdFflÎ≠)±#es that can be taken is 8 in high-rÕ °dONLNdifl≠ÎÙ)êesolution mode °dONLNdxÏl¯∏(ıland 32 in standarÿ`°dONLNdâÏ∏¯≈)Ld-r°dONLNdåÏΔ¯G)esolution mode. (It takes mortİdONLNd©ÏG¯™)Åe memory to hold mor∏`°dONLNdΩÏ™¯Ó)ce pixel data, so °dONLNdŒ˘l¢(l fewer picturö°dONLNd⁄˘¢∂)6es ar†°dONLNdfl˘∂)e available in high-rÿ°dONLNdÙ˘X)Xesolution mode.)°dONLNd lÉ(lThe rÄ¿°dONLNd
  474.  ÉÎ)esolution setting also afs`°dONLNd# Î∏)h-fects two indicators on the LCD display—the rñ`°dONLNdP ∏„)Õ
  475. esolution °dONLNdZl$ø(!licon and the pictur”@°dONLNdmø$)Ses-available indicatory†°dONLNdÉ$=)^. The ef•@°dONLNdã=$p) fects that arÕİdONLNdòp$‰)3e particular to the display °dONLNd¥%l1ô(.l
  476. during difà¿°dONLNdæ%ô1•)-ferk@°dONLNd¡%•1π) ent r熰dONLNdΔ%π1)esolution settings arA °dONLNd€%1Q)Ye described in  °dONLNdÍ%R1ê)@ “LCD Displayœ†°dONLNdˆ%è1ñ)=,”O†°dONLNd¯%ó1Ô) later in this chapterÆÄ°dONLNd%Ó1Û)W. 
  477. O*V¯4P*V¯ QlQ¯
  478. ˇ·ˇ‚7^ °dONLNdBlP∏(LlShutter Buttonˇˇˇˇˇˇ‘@(LÒ1
  479. °dONLNd!Vlb◊(_lThe shutter button contr+ °dONLNd9Vÿb$)lols when a picturr†°dONLNdJV$b¡)L'e is taken. If the shutter button is pr{@°dONLNdqV¡bÔ)ù
  480. essed and °dONLNd{clo˙(ll the timer button has not been prΩ¿°dONLNdõc˙o+)é eviously pré@°dONLNd¶c,ok)2essed, a pictur†Ä°dONLNdµckoŒ)?e is taken immediatelyA‡°dONLNdÀcŒoÏ)c    . If the °dONLNd‘pl|Ÿ(yltimer button has been prW °dONLNdÏpŸ|¨)m1essed, a 10-second delay occurs prior to a pictur}İdONLNd    p¨|Î)”e being taken. °dONLNd    ,}lâ´(ÜlWhen a picturU†°dONLNd    9}´â)?e is taken, the picturw¿°dONLNd    O}âø)Y*es-taken indicator on the LCD display incr’`°dONLNd    y}øâÓ)ª
  481. ements by °dONLNd    Éälñ)(ìl+1. The shutter button is disabled when ther@°dONLNd    Æä*ñ:)æe ar‡°dONLNd    ≤ä:ñO)e zerı °dONLNd    ∑äNñp)o picturS‡°dONLNd    øäqñ»)#es available in both °dONLNd    ‘ól£á(†lhigh-r≥ °dONLNd    ⁄óá£Á)esolution and standarذdONLNd    ÔóÁ£Ù)`d-r„†°dONLNd    ÚóÙ£9)esolution pictur™ °dONLNd
  482. ó:£c)F    e modes. ˇ‡î@ˇ ˇˇˇˇ@
  483. ˇ·ˇ‚7^
  484. 4H\, Palatino&e.3+ä"CHAPTER à)>1,     Helvetica    ˇˇ—ÚˇÆ(@äIntroduction to the QuickTŸ$)aake 100 Camera4⁄ä˙(‡äQuickT@)ake 100 Features
  485. , (‡    1-74^H¿
  486. kHr4lHr mäm
  487. ˇ·ˇ‚7^ˇˇ‹.ˇ◊°dONLNd\äk÷(gä LCD Displayˇˇˇˇˇˇ€r(g1
  488. °dONLNdrä~æ({ä
  489. The QuickTº@°dONLNdrΩ~¸)3Iake 100 has an LCD display on the back of the camera to the right of the °dONLNd`äã•(àäviewfi<°dONLNdf¶ã∫)nder(°dONLNdj∫ãˆ), as shown in K°dONLNdxˆã)<Figur¿°dONLNd}ã")e 1-3ª@°dONLNdÇ"ã'). 
  490. ≠Hæ4ÆHæ"ÆH]
  491. ˇ·ˇ‚7^    °dONLNd֣䯥(´ä
  492. Figure 1-3°dONLNdê£ÃÆ,)BRear view of the QuickTÇİdONLNdߣ+Æk)_ake 100 camera
  493. °dONLNd∑;äG·(DäThe LCD display pr-†°dONLNd…;‚GÒ)X<ovides information about the battery-power level, number of °dONLNdHäT§(QäpicturÈ@°dONLNd H§T)es taken, number of picturˇ`°dONLNd%HTu)tes still available, curr °dONLNd=HvT†)^
  494. ent pictur‰¿°dONLNdGH†T¨)*e-r«@°dONLNdJH¨Tı) esolution mode, °dONLNdZUäaú(^äcurrذdONLNd^Uúa≤)ent fl °dONLNddU≥aá)3ash setting, timer setting, and an erase-all pictur@°dONLNdóUáa∫)‘ es indicatorº °dONLNd£Uπa)2. Icons or numbers °dONLNd∂bän’(käon the display pr¶ °dONLNd«b’n)Kovide a visual rè¿°dONLNd◊bn')Depr Ä°dONLNd⁄b(n)1esentation for each of these conditions. The LCD °dONLNd oä{.(xä$display is activated when the QuickTÍ`°dONLNd/o-{å)£ake 100 camera is on. 
  495. ôH†4öH† õäõ
  496. ˇ·ˇ‚7^ °dONLNdFåäö(ñäBattery-Power Iconˇˇˇˇˇˇ‘@(ñ1
  497. °dONLNdZ•ä±(ÆäThe display indicates the currz°dONLNdx•±‚)É1ent battery-power level with an icon of a batteryaİdONLNd©•·±)‘ . The icon °dONLNd¥≤äæ¿(ªäindicates thrO‡°dONLNd¡≤¡æ)7ee conditions. n†°dONLNd–≤æ)?A©@°dONLNd—≤æF) battery icon fi-@°dONLNd·≤GæÊ)@&lled with black indicates a fully charfiİdONLNd≤Êæ¯)üged °dONLNd øäÀ©(»äbatteryº°dONLNdø®À≠). ]†°dONLNdø≠À¥)Aò@°dONLNdø¥À\)( battery icon with only the right half fi†°dONLNd>ø]À)©+lled with black indicates that the battery °dONLNdiÃäÿù(’ächar܆°dONLNdmÃùÿ≈)    ge has drŒÄ°dONLNdvÃ≈ÿÇ)()opped and the battery may need to be charC °dONLNdüÃÉÿ)æ!ged again soon. The battery icon °dONLNd¿ŸäÂê(‚äflå¿°dONLNd¬Ÿê‘)ashes on and ofÒİdONLNd—Ÿ‘Âò)D/f to indicate that the battery needs to be char¿°dONLNdŸô„)≈ged immediately  °dONLNdŸ‚ÂÁ)I. 
  498. H
  499. 4H
  500.  ä
  501. ˇ·ˇ‚7^ °dONLNdˆä¿(ä
  502. Pictures-T‘@°dONLNdˆø
  503. )5aken Indicatorˇˇˇˇˇˇ‘@(1
  504. °dONLNd,
  505. ä∑(ä
  506. The pictur%°dONLNd6
  507. ∏ç).2es-taken indicator is in the middle of the displayl¿°dONLNdh
  508. å⁄)‘. The count is incrΩİdONLNd{
  509. ⁄)Nemented °dONLNdÉä#ÿ( äeach time a pictur<‡°dONLNdïŸ#0)Oe is taken starting frÆÄ°dONLNd´0#Ø)Wom 0 to the number of pictur∞@°dONLNd«Ø#◊)
  510. es taken. 
  511. AHH4BHH CäC
  512. ˇ·ˇ‚7^ °dONLNd“4äB¡(>ä
  513. Pictures-AûİdONLNd‹4¡B)7vailable Indicatorˇˇˇˇˇˇ‘@(>1
  514. °dONLNdHäT∑(Qä
  515. The pictur%°dONLNd˙H∏Tú).4es-available indicator displays the number of pictur‡°dONLNd.HúTø)‰    es that r"†°dONLNd7HøT)#emain to be taken °dONLNdIUäa∑(^ä in the currF °dONLNdTU∏a‚).
  516. ent pictur ¿°dONLNd^U„aÔ)+e-rÔ@°dONLNdaUÓa{) esolution mode. This value decr ‡°dONLNdÄU|a•)é    ements fr]¿°dONLNdâU•a„))om 8 in high-r °dONLNdóU‰a)?
  517. esolution °dONLNd°bänÃ(kämode and decr∂†°dONLNdÆbÃnı)B    ements frİdONLNd∑bˆn?)*om 32 in standarº@°dONLNd«b?nL)Id-r‡°dONLNd bLn√)esolution mode. The pictur"°dONLNd‰bƒn˙)xes-available °dONLNdÒoä{(xä"indicator is located next to the r‘ °dONLNdo{´)ã!esolution icon on the LCD displayÑ °dONLNd4o´{∞)ñ. °dONLNd7Åäçß(ääIf the r‘¿°dONLNd?Åßç)esolution button is prx‡°dONLNdUÅçm)_essed when the QuickT√ °dONLNdjÅlç◊)fake 100 camera is in the °dONLNdÉéäö´(óästandar±Ä°dONLNdäé´ö∏)!d-rÊ °dONLNdçé∏ö)esolution mode, the rdONLNd¢éö®)^ esolution mode changes to high r`†°dONLNd¬é©ö¯)ìesolution and the °dONLNd‘õäß§(§äpicturÈ@°dONLNd⁄õ§ß~)3es-available indicator changes to indicate the currt °dONLNdõß⁄)€ent number of picturÙİdONLNd!õ⁄ß)[
  518. es that ar@°dONLNd+õß
  519. ))e 
  520. øä#÷4æâøäò@@¯@¯øäˇÇ¡¡¡    Òˇˇ’ Úˇ¸‡÷ Ûø˝?¿◊ Ùˇ‡¸~◊ Ù˙¿ÿ
  521. Ù˘xÿ
  522. Ù ˘ÿ˛Ûˇ˛˛ÄŸ¿Û¸˛‡ŸÒÄ8ŸÒˇ¿Ÿx˝~‡¯~Ä⁄¡˛¡8¯«˛‡⁄è˝?é˜q¿0⁄˝‡Û˜p⁄0˝3¿¯ ⁄`˝Ó‡`¯Ã⁄@˛òø∏˜f⁄@˛pp‡»˜3Ä€¿˛    ¡¿0l¿˛ˇ¿ÄÄ¿€IJ    É6˛ˇ¿ ¿@€ IJ    é¯˛ˇ¿``€    Ä˛      8˛ˇ¿80 €    ˝    çIJˇ¿8ò0€    ˝    60¸ΔÄ ˛ˇ¿Ã€˝    l`gB¿˛ˇ¿8d€˝    H@3˘¿c@8˛ˇ¿x$€˝    X¿n`1`¯˛ˇ¿6 €˝    Qį ˛ˇ¿‡€˝    Q·P†¿˛ˇ¿Ä€˝    —G˛x†˛ˇ¿˛€˝    ëOˇ(†˛ˇ¿˛    €˝    ±œˇ<∞˛ˇ¿˛    €2˝    £üˇê˛ˇ¿˛    €&˝    ¢üˇî –˛ˇ¿˛    €$˛
  523. ¢?ˇúP˛ˇ¿˛    Ä€<˛
  524. ¢?ˇåP˛ˇ¿˛ˇˇ˛€&˝    ¢üˇú P˛ˇ¿˛    Ä€"˝    ¢üˇî–˛ˇ¿˛    €2˝    £üˇ4ê˛ˇ¿˛    €˝    ±œˇ,∞˛ˇ¿˛    €˝    —O˛h†˛ˇ¿˛    €˝    Q„¯X†˛ˇ¿¿€˝    QÄ∞`†˛ˇ¿€˝    XÄ‹‡1 ‡˛ˇ¿¯3€˝    H¿wú¿!`˛ˇ¿ 8'€˝    l`ÛÄc@–˛ˇ¿f €˝    4 æΔ¿x˛ˇ¿N€    ˝    0‡ÖÄ˛ˇ¿ 8Œ€    ˝    ç˛ˇ¿¯ú€    Ä˛     ‡˛ˇ¿<€ IJᲲˇ¿¿h€¿˛¡Ä4˝˛ˇ¿ »0€@˛`‡pϘò €@˛∏>¡ò˜3`€`˝Ã¯0˜Ê0@€ ˝w ‡¯å`¿€0˝Ä9į@Ä€˝¸Á˜8p¿Ä€á¿˛¸ ¯„¡Ä⁄‡|˛¯¯⁄ò@@į@įˇä?Ç8¯˛ø¯¯8 ⁄ÄÛˇ¸‡⁄¯ÒÄ 0⁄?Û¯`⁄Ûˇ¸0¿⁄ Ô`Ä⁄ Ô¿ŸÄŸÄÒ8Ÿ˛ÄÒ‡Ÿ˛‡ÒpÄŸ ˛0Ò¿ÿ˛ÚÄ|ÿ˛Ú¿ÿ˛ÄÛ<◊˝‡Ù‡◊ ˝0Ù?÷ ˝ıˇ¿’˝Ùˇ”¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Äú¯Äú¯?ä[Ç¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡òů@¯HHÄ≠$¬Ä˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  525. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@¯øäˇÇ'ÅÅÅâÅÅÅâÅÅÅâ Å˛ËˇÅÅ•âÛˇÏ˘ˇÅŨê˘ˇ˚ˇfl˘ˇÅÅ≥ìÙˇ”˚ˇÅÅ∏¬˝ˇÅŪîˇæ˝ˇÅÅæïˇˇª˛ˇÅÅ¿Ëɡ‚˛ˇÅŬÓ˙ˇÖ˘ˇÁ˛ˇÅŃÚ¸ˇÅ¯˝ˇË˛ˇÅÅΔı˝ˇ˙Ŏ˛ˇ˚˝ˇÈ˛ˇÅÅ»"¯˝ˇ˚¸ˇ‡˚ˇ˚˚ˇ≥˚ˇ˝˛ˇÈ˛ˇÅÅ '˘ˇˇ¸¸ˇfl˝ˇ¸¸ˇ˚˛ˇ∞˝ˇ˛˛ˇÈ˛ˇÅÅÃ-˙ˇˇ˛˝ˇ‹ˇˇ˛˚ˇ˛˚ˇ˛˛ˇØ˛ˇ˛˛ˇÈˇˇÅÅÕ-˙ˇ˛ˇˇ€˛ˇ˝ˇÙ˝ˇˇˇÆ˛ˇ˛˛ˇÍˇˇÅÅŒ.˚ˇˇˇˇ€ˇˇˇˇÓ˛ˇ˛ˇÆ˛ˇ˛ˇˇÍˇˇÅÅœ1˚ˇˇˇ‹˛ˇ˛ˇ¯˛ˇ˜ˇˇˇˇ≠˛ˇˇˇÍˇˇÅÅ–4˚ˇˇ‹ˇˇˇˇ˚˚ˇ˚ˇ˚˛ˇ˛ˇ≠ˇˇˇˇÍˇˇÅÅ—4¸ˇˇˇ›ˇˇ˛ˇ¸˛ˇˆ˝ˇ¸ˇˇˇ¨ˇˇˇˇÍˇˇÅÅ“B¸ˇˇˇ›ˇˇˇ¸˛ˇÒˇˇ¸ˇˇˇˇÔˇˇÙÊˇÙˇˇ˜ˇˇˇˇÍˇˇÅÅ”R¸ˇˇ›ˇˇˇ¸ˇˇÓ˛ˇ˝ˇˇˇˇÚ˚ˇˆˇ˛fiˇ˛fi›˛fi›˛fi›fifi˘ˇˆ˙ˇ˘ˇˇˇˇÍˇÅÅ”L˝ˇˇˇfiˇˇˇˇ˛˛ˇÎˇˇ˝ˇˇˇÛ˘ˇ˜ˇfifi˝ˇ¯fi˙ˇ˛fiˇ˜˘ˇ¯ˇˇˇˇÎˇˇÅÅ‘\˝ˇˇˇfiˇˇˇ˛ˇˇËˇˇ˝ˇˇˇı˝ˇ˛ˇ˜ˇfifi˝ˇfi›˛fi›˛fi˙ˇfi›fiˇ˜˛ˇ˛˛ˇ¯ˇˇˇˇÎˇÅÅ‘_˝ˇˇfiˇˇˇ˝ˇÊˇˇ˛ˇˇˇˇˆ˛ˇ˝˛ˇ¯ˇfi›fi˛ˇ˛fi›˛fi›fi˛ˇfifi˝ˇfiˇ¯˛ˇ˝˛ˇ˜ˇˇˇˇÏˇˇÅÅ’[˝ˇˇflˇˇˇˇ˛ˇˇ¯¯ˇ˜ˇˇ˛ˇˇˇˆˇˇ¸˛ˇ¯ˇ˛fi˝ˇ˘fi˛ˇ˛fi¸ˇ¯ˇˇ¸ˇˇˆˇˇˇˇÏˇÅÅ’i˛ˇˇˇ‡ˇˇˇˇ˛ˇˇ˘˛ˇ˛ˇˇ˛ˇ¯ˇ˝ˇˇˇ˜˛ˇ˝˛ˇ¯ˇfi›fi˛ˇ˛fi›˛fi›fi˝ˇfifi¸ˇ¯˛ˇ˝˛ˇıˇˇˇÏˇˇÅÅ÷k˛ˇˇˇ‡ˇˇ˝ˇ˘ˇˇ˙ˇ˛ˇ˙ˇˇ˛ˇˇˇ˜˝ˇ˛ˇ˜ˇ˛fi›ˇˇfi›˛fi›˛fi›fifiˇ›fi¸ˇ˜˛ˇ˝ˇÙˇˇÎˇÅÅ÷W˛ˇˇflˇˇˇ˛ˇˇ˙ˇˇ˛ˇ¸˝ˇˇˇ˙ˇˇ˛ˇˇˇ˜˘ˇ˜ˇ˝fiˇˇÓfiˇ˜˘ˇÛˇˇˇˇÏˇˇÅÅ◊\˛ˇˇflˇˇ˛ˇˇ˙¸ˇ˜¸ˇ˙ˇ˛ˇˇˆ˚ˇˆˇ˛fi›ˇfifi›˛fi›˛fi›˛fi›˛fi›fiˇˆ˚ˇÒˇˇÎˇÅÅ◊a˛ˇˇflˇˇ˛ˇ˙˝ˇ˝¸ˇ¸ˇˇ˙ˇˇˇˇˇÙˇˇÙˇfi›˛fi›˛fi›fifiˇ›˝ˇ˛fi›˛fiˇÛˇÔˇˇˇÏˇÅÅ◊R˛ˇˇ‡ˇˇˇ˛ˇ˙ˇˇ˛˛ˇ‚‚·˝ˇ˝ˇ˙ˇ˛ˇˇÂˇıfiˇfi˝ˇ˙fiˇ‡ˇˇˇÏˇÅÅ◊d˛ˇˇ‡ˇˇ˛ˇ˚ˇˇˇˇˇ˛‚·˛‚·ˇˇˇˇ˙ˇ˛ˇˇÂˇfi›˛fi›˛fi›fi˝ˇfifi›˛fi›˛fiˇflˇˇÏˇÅÅ◊`˛ˇˇ‡ˇˇˇ˛ˇ˚    ˇˇˇˇ‚‚·˛‚·˛‚ˇ˝ˇ˚ˇ˛ˇˇˇÊˇ˛fi›˛fi›˛fi˙ˇfi›˛fi›fiˇflˇˇÏˇÅÅ◊[ˇˇˇ‡ˇˇ˛ˇˇ˚ˇˇˇˇ˛‚·˛‚·‚‚ˇ˛ˇˇ˚ˇ˛ˇˇÊˇˆfiˇˇfi˝ˇ˙fiˇflˇˇÏˇˇÅÅÿfˇˇˇ‡ˇˇ˛ˇ˙˛ˇˇ˛‚·˛‚·˛‚ˇˇˇˇ˚ˇˇˇˇˇÊˇ˛fi›˛fi›˛fiˇˇfifi›ˇˇfi›˛fi›fiˇflˇˇÎˇÅÅÿdˇˇ‡ˇˇˇ˛ˇ˚˛ˇˇˇ‚·˛‚·˛‚·‚‚ˇ˛ˇ˙ˇ˛ˇˇÊˇfi›˛fi›˛fi›fiˇˇ›˝ˇ˛fi›˛fiˇflˇˇˇÏˇÅÅÿL˝ˇ‡ˇˇˇ˛ˇ˚    ˇˇˇˇ‚‚·˛‚·˛‚·‚ˇ˛ˇˇ˙ˇ˛ˇˇÊˇÛfi˝ˇ˙fiˇflÊˇÅÅÿfˇˇˇ‡ˇˇ˛ˇ˚˝ˇˇ‚·˛‚·˛‚·‚‚ˇ˛ˇ˚ˇˇ˛ˇˇÊˇfi›˛fi›˛fi›˛fi›˛fi›˛fi›˛fiˇflˇˇˇÏˇÅÅÿcˇ˛ˇ‡ˇˇ˛ˇ˙ˇˇˇ˛‚·˛‚·˛‚ˇˇˇˇ˚ˇ˛ˇˇˇÊˇ˛fi›fifi˙ˇfifiˇˇfifi›˛fi›fiˇflˇˇÎˇÅÅÿ[ˇˇˇ‡ˇˇ˛ˇˇ˚ˇˇˇˇ˛‚·˛‚    ·‚‚ˇˇˇˇ˚ˇ˛ˇˇÊˇ˚fi˛ˇfi˙ˇ˘fiˇflˇˇÏˇˇÅÅÿc˛ˇˇ‡ˇˇˇ˛ˇ˚    ˇˇˇˇ‚‚·˛‚
  526. ·‚‚ˇˇˇˇˇ˚ˇ˛ˇˇˇÊˇ˛fi›˛fi›fifi˙ˇfifi›˛fi›fiˇflˇˇÏˇÅÅ◊]˛ˇˇ‡ˇˇˇ˛ˇ˚ˇˇˇ˛ˇ‚‚·‚‚˛ˇˇˇˇ˙ˇ˛ˇˇÂˇfi›˛fi›˛fi¯ˇ˛fi›˛fiˇflˇˇÏˇÅÅ◊I˛ˇˇflˇˇ˛ˇ˙˝ˇ˛˙ˇ˝ˇˇˇ˚ˇˇ˛ˇˇÂˇËfiˇı˝ˇˇˇˇÏˇÅÅ◊a˛ˇˇflˇˇ˛ˇˇ˙ˇˇˇ¸ˇˇ¸˝ˇ˙ˇ˛ˇˇˇÂˇfi›ˇˇfi›˛fi›˛fi›˛fi›˛fiˇ˛fiˇ˜˘ˇÚˇˇˇÏˇÅÅ◊`˛ˇˇflˇˇˇ˛ˇ˙ˇˇ˛ˇ˙˚ˇ˙ˇˇ˛ˇˇı˝ˇıˇfifi˛ˇfifi›˛fi›˛fi›˛fi¸ˇfiˇ˜¯ˇÙˇˇˇˇÏˇÅÅ◊c˛ˇˇˇ‡ˇˇ˛ˇˇ˙˛ˇ˝ˇ˛ˇˇˇ˘ˇ˝ˇˇˇˆ˚ˇˆˇfi˝ˇfiˇˆfi˝ˇfiˇfiˇ˜ˇˇ˝˛ˇÙˇ˛ˇÏˇÅÅ◊o˛ˇ˛ˇ‡ˇˇˇˇ˛ˇˇ˘ˇˇ˛˝ˇ˛ˇ˘ˇˇ˛ˇˇˇˆ¸ˇˇˆˇfifi˛ˇfiˇ›˛fi›˛fi›fifi˝ˇfi˛ˇ¯˛ˇ¸ˇˇıˇˇˇˇÏˇˇÅÅ◊b˛ˇˇˇflˇˇˇ˝ˇ¯¸ˇ¸ˇ¯ˇˇ˛ˇˇˇˇˆˇˇ˝ˇ˜ˇfi›¸ˇfifi›˛fi›˛fi›˘ˇ¯˛ˇ¸ˇˇıˇ˛ˇÏˇÅÅ÷N˝ˇˇfiˇˇˇ˛ˇˇı˛ˇÙˇ˝ˇˇˇı˙ˇˆˇfifi˛ˇÛfi˙ˇ˜ˇˇ˝˛ˇˆˇˇ˛ˇÏˇÅÅ÷Z˝ˇˇfiˇˇˇˇ˛ˇˇÁˇˇ˛ˇˇˇÛˇ˝ˇˆˇfi›˛ˇ›˛fi›˛fi›˛fi›fi¸ˇfiˇ˜¯ˇ˜ˇˇ˛ˇÎˇÅÅ÷Z˝ˇˇˇfiˇˇˇ˝ˇˇÈˇˇ˛ˇˇˇˇÛ¸ˇıˇfi˝ˇfifi›˛fi›˛fi›˛fi›fiˇˇ›fiˇˆ˙ˇ˜ˇˇ˝ˇÏˇˇÅÅ÷@˝ˇˇˇ›ˇˇˇ˝˛ˇÌ˛ˇ˝ˇˇˇ·ˇˇÈfiˇÙ˛ˇˆˇˇˇˇˇÎˇÅÅ’<¸ˇˇˇfiˇˇˇˇ¸ˇˇÔˇˇ¸ˇˇˇflÁˇÁˇˇˇˇˇÏˇˇÅÅ’7¸ˇ˛ˇ›ˇˇˇˇ¸˛ˇÛ˛ˇ˝˛ˇˇˇ¨    ˇˇˇˇˇˇÏˇÅÅ‘9¸ˇˇˇ‹ˇˇ˛ˇ¸¸ˇ¸˚ˇ¸ˇˇˇˇ¨ˇˇˇˇ˛ˇÏˇˇÅÅ‘6˚ˇˇˇ‹ˇˇˇˇ˘˙ˇ˘˛ˇˇˇ≠˛ˇˇˇ˛ˇˇÏˇÅÅ”2˚ˇ˛ˇ€˛ˇ˛ˇÌˇˇ˛ˇÆ˛ˇ˛ˇˇ˛ˇˇÏˇˇÅÅ”2˚ˇˇˇˇ⁄ˇˇˇˇ˛ˇˇˇÆ˛ˇ˝ˇˇ˝ˇÎˇÅÅ“1˙ˇ˛˛ˇ€˛ˇ˚ˇ˙˚ˇ˛ˇØ˛ˇ˝˛ˇ˝ˇˇÏˇˇÅÅ“/˙ˇˇ˝¸ˇ›ˇˇ¸¯ˇ˚ˇˇ∞˝ˇ˛˝ˇ¸ˇˇÏˇˇÅÅ—'˘˛ˇ˚¸ˇ‡¸ˇˆ˚ˇ≤˝ˇ˝˛ˇ˘ˇÏˇˇÅÅ–òů@įHHÄ≠$√IJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  527. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@įˇä?Ç'(˜˛ˇ˘˘ˇ„˚ˇ˚ˇ¥˘ˇ¸˛ˇ¯ˇˇÌˇˇÅÅœı¸ˇˆáˇ˜˛ˇ˜ˇˇÌˇˇÅŌҸˇÅ˙¸ˇˆˇˇÌˇˇÅÅÕÔ˜ˇà˘ˇÛˇˇÌˇˇÅÅÃÓˇˇ˚ܡÌˇˇÌˇˇÅÅÀÌˇˇÅÓˇˇÌˇˇÅÅ ÏˇˇÅˇˇÌˇˇÅÅ…ÎˇˇÅÛ˛ˇÓ˛ˇÅÅ»ÍˇˇÅˆ˛ˇÓ˛ˇÅÅΔÈˇÅ˜ˇˇÓ˛ˇÅŃÈ˛ˇÅ˚˛ˇÔ˛ˇÅŬÁˇˇÅ˝ˇˇÓˇˇÅÅ¿Ê˛ˇÅ˛ˇÒ¸ˇÅÅø‰˛ˇÑˇˇÛ¸ˇÅŪ‚ˇˇá˛ˇı˝ˇÅÅ∑·˛ˇç¸ˇ˙˘ˇÅÅ¥flˇˇì˚ˇˆˇÅÅ≠fi˛ˇôıˇÅÅ£
  528. ‹ñˇÅÅôÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòůÄú¯HHÄ≠$ƒÄ˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  529. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêêÄú¯?ä[Ç'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâò@@¯@¯[äõÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ˛ÃèáÃÀ ˛Q@À ˛B ˝êB Ìh@Œ˝†D    E1†Œ˝£ hàJ!¿Œ˝¿!    %í¬Õ˝Ä~;üA¿Œ¯@ï@ïÄá˛Ã˛@¿˛@–˛˛Ä@˛¿–˛˛ÄIJĖò@@į@įõä€Ç˝
  530. êûh‡„L∞x◊ÑÄ–˝
  531. £J) îí†%"öÄ–˝    £îPņ¿F%œ˝
  532. ƒñAiÁPJu°Ä–˝    É§˚ÄÜô ±©œˆÄÕˆÄÕ˜¿Õ¡˛Ã˛@ `—˛˛H¿ —˛˛ÑÄ
  533. @ “˝ êûh‡Ñ$àéxZ
  534. Gq“˝£J) Ñ‹¥ë%¨    H¶Ä”˝ £îPÅÂ9!E»    êß“˝ ƒñAA¢JëH“˝ ɧ˚ɇ‰9±–éG“ıÄŒıÄŒˆ¿Œ¡˝aé`8¿ ÷˝íQ˚E ˝÷˝$Y˛ @d ÷˝ƒV~Á&QX Ò«Óp(Ñxÿ˝#¢¢ I    -¶Äà@J,§ê”Z$ÿ˝!"¬îD J'àÄå)DAúDÿ˝"$    E6íí¯ë îSi!| Hÿ˛Ã9‰ú    gc¡cûI¿≥ú∞ÿ˚˚˚Äÿ˚˘˚Äÿ˚8˘Ä˝¿ÿ¡¡¡¡¡¡¡¡¡¡¡¡¡˝ t¸–˝`0ถ˝† ˛Ä–˝ £œ!⁄o5¬–ÒÄ“˛!$¶Ç-§îç`R@“˛ Ú(«)(®é@§—˛Ih4RiKÄ¥¿“˛}ñG√íV}Ç#“˝˝œ ˝˝à ˝8˝8á ˝pÀ ˛@À ˛ÄÀ˝É^BÎ@Õ˝Däi≠    1ÄÕ˛(îâŒ!Ã˛)÷æì¬Ãò@Äú¯Äú¯€ä˜Ç˛Δ§YŒÕBá¡¡¡ ˝È¸Õ ˝[¸        Õ˝í Õ˝íhˇFÛ¥ Õ˝í))â$XÕ˛$Pâ(PÕ˛6ñR»†    Õ˛§˚íG <^Õ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡òů@¯HHÄ≠$≈IJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  535. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@¯[äõÇ'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâ'„˝ˇˇˇ¸˛ˇ¯ˇˇ˛¸ˇ˝¸ˇˇˇÅÅÅ◊)‚ˇ¸ˇ˚ˇ¯ˇˇˇ˛ˇ¸ˇ˛ˇÅÅÅ”$‚ˇ˝ˇ˚ˇ¯ˇ˛ˇ˝ˇ˚ˇÅÅÅœ;·ˇˇ˙ˇ˘ˇ˝ˇ˝ˇ˚˛ˇ˝ˇˇ˛ˇ    ˇˇˇˇˇˇ˝ˇÅÅÅÎ@·ˇˇ˘ˇ˘ˇ˝ˇ˛ˇ˚ˇˇ˛ˇˇˇˇˇ˛ˇˇˇˇ˛ˇˇˇÅÅÅÏ@·ˇˇ˛ˇˇˇ˚ˇˇˇ˛ˇ˛ˇ˙ˇ˚ ˇˇˇˇˇ˛ˇ˝˛ˇÅÅÅÎ;·ˇˇ˘ˇ˝ˇ˝ˇˇ˝ˇ˙ˇ¸ˇˇˇˇˇˇˇˇ˝ˇÅÅÅË1·ˇ˘˚ˇ˚ˇˇ˝ˇ˙˛ˇ˝˛ˇ˛ˇ¸ˇˇ¸˛ˇÅÅÅÎ¥ˇ˛ˇÅÅÅ€¥ˇ˛ˇÅÅÅ€ ≥˛ˇÅÅÅ⁄ÅÅÅâ„˝ˇˇˇÊˇÛˇˇ‚ˇÅÅÅ˚‚ˇ¸ˇÁˇÒˇ„ˇˇÅÅÅ˚‚ˇ˝ˇÊˇÚˇ‚ˇÅÅÅ˙òů@įHHÄ≠$ΔIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  536. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@įõä€Ç'L·ˇˇ˝ˇ˝ˇˇˇˇ˛˛ˇ¸˛ˇ˛ˇˇˇˇˇˇˇˇ¸˝ˇ˛ˇˇˇ˝ˇ˝ˇˇÅÅÅ˙V·ˇˇ˛ˇˇˇˇˇ˛ˇˇˇˇ¸ˇˇˇˇˇˇˇˇ˙ˇˇˇˇ˛
  537. ˇˇˇˇˇˇÅÅÅ˙O·ˇˇ˛˛ˇˇˇ˛ˇˇ˝ˇ˚ˇ˛ˇˇ˛ˇˇ¸ˇˇ˙ˇ˛ˇˇ˛ˇˇˇ˛˛ˇˇÅÅÅ˘T·ˇˇ˛ˇ¸ˇˇˇˇˇˇˇˇ¸ˇˇˇˇ˝ˇ˛ˇˇˇ¸ˇˇˇ˛ˇˇˇˇˇ˝ˇˇÅÅÅ˙M·ˇ¸˛ˇˇˇ¸ˇ˛ˇ˙ˇ˝ˇˇˇˇˇˇˇ¸ˇˇˇ˛ˇˇˇˇˇ˛˛ˇˇÅÅÅ˘ ©ˇÅÅÅ‚ ©ˇÅÅÅ‚ ™˛ˇÅÅÅ„ÅÅÅâ!„˝ˇˇˇÁ˝ˇÏˇÁˇˇ˛ˇˇÅÅÑ"‚ˇ¸ˇÊˇˇÓˇˇÊˇ˝ˇÅÅÑ'‚ˇ˝ˇÊˇ˝ˇÔˇÊˇˇˇ˘ˇÅÅåa·ˇˇ˝ˇ˝ˇˇˇˇ˛˛ˇ¸ˇ˝ˇ˝ˇˇˇ˛ˇ˛ˇ˛˛ˇ˝ˇ˝ˇˇˇˇ¸ˇˇˇ˛˛ˇ˛ˇ˛ˇÅÅël·ˇˇ˛ˇˇˇˇˇ˛ˇˇˇˇ¸ˇ˝ˇˇˇ˛ˇˇˇˇˇˇˇ˛ˇˇˇˇˇˇˇˇ˚ˇˇˇˇ˛ˇˇˇˇˇÅÅíc·ˇˇ˛˛ˇˇˇ˛ˇˇ˝ˇ˚ˇ˝ˇ˛˛ˇˇˇ˛ˇˇˇ˝ˇˇ˛ˇ˛ˇˇ˙ˇˇˇˇ˝ˇˇ˛ˇÅÅë`·ˇˇ˛ˇ¸ˇˇˇˇˇˇˇˇ¸ˇ˛ˇ˛ˇ¸ˇˇˇ¸ˇˇˇ˛ˇˇˇˇ˝ˇ˙ˇ˝ˇˇ˛ˇˇˇÅÅéW·ˇ¸˛ˇˇˇ¸ˇ˛ˇ¸¸ˇ¸˛ˇˇ˝˛ˇˇ˛˛ˇˇˇˇ˛˛ˇˇ˙ˇˇ˛ˇ˛˛ˇˇ˛˛ˇÅÅë °ˇÅÅÅÍ °ˇÅÅÅÍ ¢˛ˇÅÅÅÎÅÅÅâ6‡ˇˇ˝ˇˇ˛˛ˇÔˇˇÁˇˇ˝ˇˇÙ˛ˇ˛ˇˇÓˇˇÏˇˇÅÅØ.· ˇˇˇˇˇ˛ˇÕˇıˇ˛ˇˇˇ◊ˇÅÅØ3flˇˇ˛ˇˇˇˇËˇËˇÙˇˇˇ˝ˇÁˇÛˇÅÅÆw·ˇˇ˛ˇ˛ˇˇˇˇ¸˝ˇ˛˛ˇ˛˚ˇ˛ˇ˛ˇ˛ˇˇˇˇˇˇˇˇ˛ˇ¯ˇˇˇ¸ˇ¸˝ˇ˛˛ˇ˛˚ˇ˛ˇ˛ˇ˚ˇˇ˛ˇ˝ˇ˛˝ˇÅÅæéflˇ˛˛ˇˇ˛ˇ˚ˇˇˇ˛ˇˇˇˇˇˇˇˇ˝ˇˇˇˇˇˇˇˇˇˇˇ˙ˇ˛ˇ˝ˇ˙ˇˇˇ˛ˇˇˇˇˇˇˇˇ˝ˇˇˇˇˇˇˇˇˇ˛ˇˇÅÅøàflˇ˝ˇˇ˛ˇ¸ˇ˛ˇˇ˝ˇˇˇˇ˛ˇ˛ˇ˚
  538. ˇˇˇˇˇˇ˛ˇ˛ˇ˘ˇ˛ˇ˛ˇ˙ˇ˛ˇˇ˝ˇˇˇˇ˛ˇ˛ˇ¸ˇ˛ˇ˛ˇ˛ˇ˛ˇ˛ˇÅÅøÇflˇ˛ˇ˛ˇˇ˚ˇˇˇ˛ˇˇˇˇˇˇˇˇˇ¸ ˇˇˇˇˇˇ¸ˇˆˇˇ˛ˇˇ¸ˇˇˇ˛ˇˇˇˇˇˇˇˇˇ˝ˇ¸ˇ˝ˇ˚ˇˇÅſɄ˝ˇˇˇ¸ˇˇ˚ˇˇˇ˛˛ˇ˝ˇˇˇ˛ˇ˚ˇˇ˛˛ˇˇˇˇ˛ˇ˛ˇ¸ˇˇ˛˝ˇ¸ˇˇˇ˛˛ˇ˝ˇˇˇ˛ˇ˚ˇˇˇ˛ˇ˛ˇˇˇˇÅÅΩŒˇ ˇÓˇ—ˇÅÅ∫Œˇ∂ˇ—ˇÅÅ∫œ˛ˇ∏˛ˇ”˛ˇÅŪÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâflˇÒˇÙ˛ˇˇ“˛ˇÅÅҡˇÚˇˇıˇ˛ˇ–ˇÅÅÅ"·ˇˇÚˇıˇ˝ˇÊˇÌˇÅÅŎR·ˇˇ˛˝ˇ˝ˇˇ˝ˇ˚ˇ˘˛ˇ    ˇˇˇˇˇ˝ˇˇˇˇ˛ˇ˝ˇˇˇˇ¯ˇ˝ˇ˛ˇˇÅÅä^‚ˇˇ˝ˇˇˇˇˇˇˇˇ¸ˇ˙ˇ˛ˇˇˇˇˇˇˇˇˇˇˇ˛ˇˇˇˇˇ˜ˇ˛ˇˇˇˇÅÅãT‚¸ˇˇ˛ˇˇ˛ˇˇ˛˛ˇ˚ˇ˚ˇ˝
  539. ˇˇˇˇˇ˛ˇˇˇ˛ˇ˛˛ˇˇ˜ˇ˛ˇˇˇÅÅá]„ˇ˝ˇˇˇˇˇˇˇˇ¯ˇ˛ˇˇˇ˛ˇˇˇˇˇˇˇˇˇˇˇ˛ˇ˝ˇˆˇ˛    ˇˇˇˇˇˇÅÅã\‰ˇˇ¸ˇ ˇˇˇˇˇˇ˛˛ˇ˙˛ˇ˝˛ˇˇˇˇˇˇˇ¸ˇˇ˝˛ˇˇ¸ˇ˝˛ˇˇˇ˛ˇˇ˛ˇÅÅ狡¸ˇ⁄ˇÁˇÅÅů‹ˇ¸ˇ⁄ˇÅÅÅ››˛ˇ˛˛ˇ‹˛ˇÅÅÅfiÅÅÅâ·˝ˇˇˇÛ˛ˇ˛ˇÅÅÅ’‚ˇ˛ˇÔˇÚˇˇÅÅÅ”‚ˇ˛ˇˇÚˇˇÅÅÅ“8·ˇ¸ˇˇˇ˝ˇ˝ˇˇ˛ˇ˝ˇ˚˛ˇ¸ˇˇ˛ˇˇˇˇˇÅÅÅ„@‡ˇ˛ˇˇ˛ˇˇˇˇˇˇˇˇˇˇˇ¸ˇˇ˝ˇˇˇˇ˛ˇˇÅÅÅ‚@„ˇ˛ˇˇ˛ˇˇˇˇ˛ˇ˛ˇ˛ˇ˚ˇˇ˛ˇ˛ˇˇ˝ˇÅÅÅ·8„ˇ˛ˇˇ˛ˇˇˇˇˇ¸ˇ˝ˇ˘ˇ˛ˇˇ˝ˇ˝ˇÅÅŇòůÄú¯HHÄ≠$«Ä˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  540. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêêÄú¯€ä˜Ç'@‰ˇ˛ˇ˛ˇˇˇˇˇ˛ˇˇˇ˛ˇ˛ˇ˝˛ˇ˛ˇˇˇˇˇ˝ˇÅÅŇÅÅÅâÅÅÅâÅÅÅâÅÅÅâ·˛ˇˇˇ‘ˇˇ˚ˇˇÅÅÅË ‡ˇˇˇˇˇ’ˇˇ˝ˇˇÅÅÅÈ"·ˇˇˇÙˇÙˇÓˇ˘ˇÅÅÅÈ;· ˇˇˇˇˇˇ˛˘ˇˇ˛ˇˇ˝ˇ˛ˇˇˇˇ˚ˇˇ¯ˇÅÅÅÈ@·ˇˇˇ˛ˇˇˇˇˇˇˇ˛    ˇˇˇˇ˛ˇˇˇ¯ˇ˙ˇÅÅÅË>‚ˇˇˇ˛ˇˇ˝ˇ˛ˇˇ˛ˇ˛ˇˇˇ˝ˇˇ˜ˇ˚ˇÅÅÅÁ@‚ˇˇˇˇˇˇˇˇˇˇˇˇ˝ˇ˝ˇˇ˛ˇˇˆˇ¸ˇˇÅÅÅÈ=„˛ˇˇˇ¸ˇ˛ˇˇˇ¸ˇˇˇˇ˛˛ˇˇ˙˝ˇ˛ˇ˝ˇÅÅÅËÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâò@@¯@¯˜ä7Ç¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@į7äwÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Äú¯Äú¯wäìÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡òů@¯HHÄ≠$»Ä˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  541. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@¯˜ä7Ç'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòů@įHHÄ≠$…IJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  542. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@į7äwÇ'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòůÄú¯HHÄ≠$ Ä˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  543. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêêÄú¯wäìÇ'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâò@@¯@¯ìä”Ç¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@į”äÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Äú¯Äú¯ä/Ç¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡òů@¯HHÄ≠$ÀIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  544. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@¯ìä”Ç'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòů@įHHÄ≠$ÃIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  545. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@į”äÇ'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòůÄú¯HHÄ≠$ÕIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  546. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêêÄú¯ä/Ç'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâò@@¯@¯/äoÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įoäØÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Äú¯Äú¯ØäÀÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡òů@¯HHÄ≠$ŒÄ˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  547. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@¯/äoÇ'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòů@įHHÄ≠$œÄ˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  548. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@įoäØÇ'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòůÄú¯HHÄ≠$–IJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  549. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêêÄú¯ØäÀÇ'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâˇ`@ˇ ˇˇˇˇ@
  550. ˇ·ˇ‚7^
  551. 4*\¯, Palatino&e.3+l"CHAPTER à)>1,     Helvetica    ˇˇ—ÚˇÆ(@lIntroduction to the QuickTŸ$)aake 100 Camera4⁄*˙¯
  552. (‡*1-8    )BQuickT@)ake 100 Features4^*¿¯
  553. °dONLNd\lhº(elavailable in high-rİdONLNd\ΩhR)Qesolution mode. The number decrp`°dONLNd2\Rh¨)ïeases because high-r°dONLNdF\¨h◊)Z
  554. esolution °dONLNdPiluÜ(rlpicturÈ@°dONLNdViÜu«)es consume lar6 °dONLNddi»uä)B(ger amounts of image memory than standarć°dONLNdåiäuó)¬d-rµÄ°dONLNdèióu‹)esolution pictur|°dONLNdüi›uÎ)Fes. °dONLNd§{láâ(ÑlIf the r‘¿°dONLNd¨{âáÁ)esolution button is prx‡°dONLNd¬{ËáO)_essed while the QuickT¬Ä°dONLNdÿ{Náπ)fake 100 camera is in the °dONLNdÒàlîá(ëlhigh-r≥ °dONLNd˜àáî‰)esolution mode, the ra†°dONLNd àÂî~)^!esolution mode changes to standarˇ‡°dONLNd-à~îä)ôd r`†°dONLNd0àãî⁄)esolution and the °dONLNdBïl°Ü(ûlpicturÈ@°dONLNdHïܰ∞)Ees-available indicator changes to indicate the total number of pictur ¿°dONLNdçï∞°(û∞es available in °dONLNdù¢lÆù(´l the standar‡°dONLNd®¢ûÆ´)2d-rCİdONLNd´¢´Æ>)esolution mode. The number incrj¿°dONLNd ¢>Æû)ìeases because standarx¿°dONLNdfl¢ûÆ´)`d-r≠`°dONLNd‚¢´Æ÷)
  555. esolution °dONLNdÏØlªÜ(∏lpicturÈ@°dONLNd򯆻ä)6es consume smaller amounts of image memory than high-r'¿°dONLNd(Øãª–(∏ãesolution picturÓ@°dONLNd8Ø–ªfi)Ees. °dONLNd=¡lÕó( l If a picturõ†°dONLNdH¡óÕ    )+e is taken when the picturÅ °dONLNdb¡    Õ)re rè¿°dONLNde¡ÕÉ) esolution setting is high rE‡°dONLNdÄ¡ÑÕÈ)pesolution and the total °dONLNdòŒl⁄∑(◊lnumber of pictur£°dONLNd®Œ∑⁄C)K!es available indicates one picturK °dONLNd…ŒD⁄x)çe, the pictur€`°dONLNd÷Œx⁄ÿ)4es-available indicator °dONLNdÌ€lÁ‡(‰ldisplays 0 for one second. ø`°dONLNd€‡Áf)tAfter one second elapses, the r]@°dONLNd'€gÁÔ)á esolution setting is changed to °dONLNdGËlÙç(Òlstandar±Ä°dONLNdNËçÙô)!d r@°dONLNdQËöÙ˛)esolution and the appr@°dONLNdg˲Ùk)dopriate number of pictur‡°dONLNdËkÙ—)mes available for standar)†°dONLNdóË—ÙŸ)fd °dONLNdôılo(˛lrE°dONLNdöıp) esolution is indicated. If the rÚ@°dONLNd∫ıN)Äesolution button is prñ`°dONLNd–ıO∑)_essed at this point, the rQ°dONLNdÍı∏„)i
  556. esolution °dONLNdÙlŒ( lchanges back to high rF‡°dONLNd
  557. œi)c"esolution and the number of pictur놰dONLNd,iÊ)öes available changes to 0 for °dONLNdJl¢(l one second. ㆰdONLNdV¢()6After one second elapses, the r)İdONLNdu)ÿ)á'esolution once again changes to standar‚İdONLNdúÿÙ)Ød and °dONLNd¢l(ë(%lthe appr¶†°dONLNd™ë(˛)%opriate number of pictur®@°dONLNd¬˛(p)mes available in the standar( °dONLNd›q(~)sd-r\¿°dONLNd‡~(Œ)esolution mode is °dONLNdÚ)l5ú(2l displayed. ˇ¯@ˇ ˇˇˇˇ@
  558. ˇ·ˇ‚7^
  559. 4⁄∫˙, Palatino    3,. Ã+∫#CHAPTER ÿ)h2ˇˇu÷ˇÆ°dONLNdZ∫w(p∫QuickT±Ñ°dONLNdZwπ)Sake 100 Driver 
  560. ôH84ôH8 2H2
  561. ˇ·ˇ‚7^°dONLNdz∫ó(ê∫Softwar¢*°dONLNdzó)Yeˇˇˇˇˇˇä*)ˆ2
  562. ^ÇH4`}Cˇˇˇˇˇˇ,     Helvetica    (f
  563. Figure 2-0*     Listing 2-0*    T)able 2-0ˇº@ˇ ˇˇˇˇ@
  564. ˇ·ˇ‚7^
  565. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  566. (‡*2-2    )BQuickT@)ake 100 Device Driver Overview4^*¿¯
  567. °dONLNd\lhØ(elThis chapter pr°°dONLNd\Øh‚)C esents an arX`°dONLNd\„h|)4"chitectural overview of the QuickTQ†°dONLNd=\|hfi)ôake 100 driver softwarË`°dONLNdS\fihÁ)be, °dONLNdViluu(rlprG °dONLNdXivu¯)
  568. ovides basic guidelines for pr¿°dONLNdvi¯uâ)Çogramming applications to contrÌ °dONLNdïiàuƒ)êol the QuickT(‡°dONLNd¢iƒuÁ)<ake 100 °dONLNd™vlÇ•(l camera and r2†°dONLNd∂v¶Ç˘):etrieve images stor_ °dONLNd…v˘Çi)Sed in the camera memory)@°dONLNd‡viÇı)p", describes the driver functions, °dONLNdÉlèÙ(ålXand includes a sample code listing that shows how you could use the driver functions in °dONLNdZêlúÁ*a Macintosh application to r@°dONLNdvêËú:)|etrieve an image frπ °dONLNdâê:ú|)Rom the QuickT‡Ä°dONLNdñê{ú√)Aake 100 camera. 
  569. £*æ¯4§*æ¯
  570. Œ*÷¯4œ*÷¯ –*–˛
  571. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNd®ª*Œ_(…*QuickT·å°dONLNdƪ^ŒG)4ake 100 Device Driver OverviewˇˇˇˇˇˇV˛(…2
  572. °dONLNdŒfllΆ(Ël
  573. The QuickTº@°dONLNdÿflü΢)3=ake 100 device driver includes a library of functions that arTİdONLNdfl£Î‡(Ë£e designed to °dONLNd#Ïl¯´(ılfacilitate conträ °dONLNd3Ï´¯Ú)?ol of the QuickT@°dONLNdCÏÚ¯Ä)G ake 100 camera for taking pictur( °dONLNdcÏį¢)ées and r‡‡°dONLNdkÏ¢¯Ê)"etrieving picturi‡°dONLNd{ÏÁ¯Ó)Ee °dONLNd}˘lû(l images stor °dONLNdà˘üË)3ed in the QuickT    °dONLNdò˘Ë•)I,ake 100 camera. This library of functions efK°dONLNdƒ˘•˜)Ωfectively hides the °dONLNdÿl®(ldevice-specifiÔ‡°dONLNdÊ®Î)<c details that ar0¿°dONLNd˜Ï%)De otherwise rJ‡°dONLNd%<)9equirb °dONLNd    <˜)+ed to enable an application to perform the °dONLNd4lá(ltasks. °dONLNd<%l1j*;The functions in the library can be categorized as follows:,Zapf Dingbats°dONLNdx;lBq*n
  574. °dONLNdz8xDÏ) XDriver initialization functions. The functions in this category allocate and deallocate °dONLNd“DxPô* data strº °dONLNd⁄DôP∞)!ucturB°dONLNdflD±P)es used by the QuickTf¿°dONLNdÙDPo)aake 100 device driverâ@°dONLNd    DoPq)].°dONLNd Yl`q(_ln
  575. °dONLNdVxbå) >Camera connection functions. The functions in this category ar˰dONLNdKVåbÓ(_åe used to identify and °dONLNdbbxn—(kxconnect to a camera.°dONLNdwwl~q(}ln
  576. °dONLNdytxÄ¥) Camera contre¿°dONLNdÖt¥ÄS)<&ol functions. The functions in this gr‹‡°dONLNd´tSÄo)üoup ar††°dONLNd±tpÄû) e used to rꆰdONLNdºtûÄfi).etrieve, set, or °dONLNdÕÄxåé(âxcontr>İdONLNd“Äèå;)(ol various characteristics of the QuickTü°dONLNd˙Ä:åÀ)´!ake 100 camera, for example, to r´Ä°dONLNdÄÀåÎ)ëetrieve °dONLNd#åxò(ïx%information about a particular pictur] °dONLNdHåòì)£e in the camera, to set the fl©`°dONLNdfåìòÛ)xash mode, or to erase °dONLNd|òx§¢(°x
  577. the picturF†°dONLNdÜò£§ø)+es storá °dONLNdçòø§ )ed in the camera. °dONLNd†≠l¥q(≥ln
  578. °dONLNd¢™x∂ô) Image rP@°dONLNd©™ö∂Ì)"etrieval and captur˝Ä°dONLNdº™Ì∂â)S%e functions. The functions in this gr‡`°dONLNd·™â∂•)úoup ar§ °dONLNdÁ™¶∂‘) e used to rî °dONLNdÚ™‘∂Ù).etrieve °dONLNd˙∂x¬‹(øximages and take picturC†°dONLNd∂›¬Î)ees. °dONLNd«l”ó(–l    For the W»°dONLNd«ó”')+!indows platform, the driver is prá°dONLNd?«(”Ì)ë-ovided in the form of a dynamic link library °dONLNdl‘l‡ã(›l(DLL). °dONLNdtÊlÚK*3For the Macintosh platform, the device driver is pr»°dONLNdßÊKÚ”)flovided in the form of a QuickTæ@°dONLNd≈ʔڈ)àake 100 °dONLNdÕÛlˇ∫(¸lsystem extension.°dONLNdfllù*
  579. All QuickTòİdONLNdÈú )0ake 100 driver functions rZ¿°dONLNd2)q    eturn a rˆ‡°dONLNd 2ÿ)%)esult code to notify the caller that the °dONLNd5l.(l,function has successfully completed or to pr<İdONLNda/U)√    ovide a rΰdONLNdjUÃ)&eason if the function is not °dONLNdál+ù((l successful. Õ@°dONLNdìù+§)1A‡°dONLNdî•+´) rL‡°dONLNdñ´+˝)esult code of 0 (zer¸`°dONLNd™˝+π)R+o) always indicates successful completion. °dONLNd÷1l=®(:lThe include fiG`°dONLNd‰1©=‡)= le CmDriver°¿°dONLNdÔ1fl=˙)6.h defie@°dONLNdˆ1˚={)nes the constants for each errj`°dONLNd1{=≥)Äor status. Err+¿°dONLNd"1¥=ÿ)9    ors also °dONLNd+>lJï(GlDappear in the “Result Codes” section for each function description. °dONLNdpPl\§*If the value r¥ °dONLNd~P§\I)8&eturned by a function indicates an err_`°dONLNd§PJ\è)¶or and if the errOİdONLNdµPè\Ù)Eor was detected by the .°dONLNdÃ]liM(fl1camera, then further information is available thrR`°dONLNd˝]Miû)·ough a call to the ,
  580. CourierR`°dONLNd    ]ûiÚ)QCmGetErrorInfoR`°dONLNd    ]ÚiÙ)T .°dONLNd    jlv(sl#function. For information about errà¿°dONLNd    Bjv¢)õ$ors detected by the camera, see the .°dONLNd    fwlÉ¿(ÄlCmGetErrorInfo°dONLNd    tw¿É!)T function described on °dONLNd    ãw!É9)apage °dONLNd    êw9ÉL)2-48°dONLNd    îwLÉQ). ˇ@ˇ ˇˇˇˇ@
  581. ˇ·ˇ‚7^
  582. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äUsing the QuickTÇÄ)Dake 100 Driver Software
  583. , (‡    2-34^H¿
  584. ^Hx4^Hx
  585. àHê4âHê äHä
  586. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNduHà«(ÉHUsing the QuickTJ@°dONLNduΔàj)~ake 100 Driver SoftwarÒ|°dONLNd&ujàq)§eˇˇˇˇˇˇV˛)§2
  587. °dONLNd)ôä•ê(¢äTµ¿°dONLNd*ôè•)o interact with the QuickT«@°dONLNdDô•Ù)s6ake 100 camera, applications must perform these steps:°dONLNd|¨ã∏í(µã1.°dONLNd¨ñ∏‚) Open the QuickT÷‡°dONLNd騷∏>)Kake 100 device driver˘`°dONLNd£¨>∏@)].°dONLNd¶æã í(«ã2.°dONLNd©æñ ˙) Establish a connection.°dONLNd¬–ã‹í(Ÿã3.°dONLNd≈–ñ‹Â) Retrieve or captur7İdONLNd◊–Ê‹)P    e images.°dONLNd‚‚ãÓí(Îã4.°dONLNd‚ñÓÙ) Close the connection.°dONLNd¸Ùãí(˝ã5.°dONLNdˇÙñ‚) Close the QuickTŸ`°dONLNdÙ·>)Kake 100 device driver˚‡°dONLNd$Ù>@)].
  588. $H+4%H+ &ä&
  589. ˇ·ˇ‚7^ˇˇ‹.ˇ◊°dONLNd&ä$ ( äInitializing the QuickTΩǰdONLNd=
  590. $ê)Äake 100 Device Driverˇˇˇˇˇˇ€r( 2
  591. °dONLNdT+ä7ê(4äY@İdONLNdU+ê7ı)our application must fiM‡°dONLNdl+ı7])erst initialize the QuickTÖ°dONLNdÖ+\7)g*ake 100 device driver by making a call to ˇˇJ.°dONLNdØ8äDõ(Aäthe ,
  592. Courierˇ˝fiáJ°dONLNd≥8õD„) CmOpenDriverˇˇJáJ°dONLNdø8„D )H  function. ˇ˝fiïfi°dONLNd 8 DT)) CmOpenDriverˇˇJïfi°dONLNd÷8TDˆ)H' allocates and initializes internal str¶P°dONLNd˝8ˆD )¢ucturx∞°dONLNd8 D)es .°dONLNdEäQç(NärE°dONLNdEéQ•)equir\@°dONLNd E•Q†)9ed by the driver to successfully perform any operations r@`°dONLNdDE†Q )˚equested by subsequent °dONLNd[Rä^¢([äcalls. .°dONLNdcdäp *On the Macintosh platform, °dONLNd~d pS)Å CmOpenDriver°dONLNdädSp˛)H& also initializes and opens the QuickTï°dONLNd∞d˝p)™ake °dONLNd¥qä}∏(zä
  593. 100 driver¬†°dONLNdæq∑}–)-. The ¬†°dONLNdƒq–}) CmOpenDriver¬†°dONLNd–q}É)H function is described on ¬†°dONLNdÍqÉ}õ)kpage ¬†°dONLNdÔqõ}Æ)2-20¬†°dONLNdÛqÆ}≥). 
  594. ¢H©4£H© §ä§
  595. ˇ·ˇ‚7^ˇˇ‹..ˇ◊°dONLNdˆìä¢9(ûäEstablishing a Connection W¶:°dONLNdì9¢í)Øith the Cameraˇˇˇˇˇˇ€r)’2
  596. °dONLNd!©äµ(≤äAfter initializing the QuickTfi °dONLNd>©µc)|ake 100 device driver†°dONLNdS©dµ)^%, your application must identify the °dONLNdx∂䬀(øäcamera to be contr» °dONLNdä∂€¬
  597. )Q olled beforS`°dONLNdï∂ ¬)0>e making a connection to it. This is performed by calling the .°dONLNd”√äœÿ(ÃäCmGetPortInfo°dONLNd‡√ÿœ)NF function to determine whether a camera is attached to the host. If a °dONLNd&–ä‹D(Ÿä*camera is attached to the host, then call °dONLNdP–D‹z)∫    CmConnect°dONLNdY–z‹
  598. )6  to make a connection with that .°dONLNdy›äÈØ(Êäcamera. .°dONLNdÇÔä˚û*The °dONLNdÜÔû˚Ï)CmGetPortInfo°dONLNdìÔÏ˚)N  function rR`°dONLNdûÔ˚=),    eturns a R`°dONLNdßÔ=˚y)%
  599. CmPortInfoR`°dONLNd±Ôy˚ü)<     data str>`°dONLNd∫Ôü˚µ)&uctur¿°dONLNdøÔµ˚˝)e that contains, .°dONLNd–¸ä[(ä.among other things, information about the curróİdONLNd˛¸[)—(ent status and availability of a camera °dONLNd&    äÍ(äattached to the specifiØ °dONLNd=    Í))`ed serial port. °dONLNdNä'($äZAfter you determine that a serial port has a camera attached to it and that the camera is .°dONLNd®(ä4 *available, you then call the °dONLNd≈( 4B)Ç    CmConnect°dONLNdŒ(B4À)6 function with a handle to the °dONLNdÌ(À4)â
  600. CmPortInfo°dONLNd˜(4    )< .°dONLNd¯5äAï(>ästrfi°dONLNd˚5ïA¨) ucturc‡°dONLNd5≠A)e for the camera. If morà@°dONLNd5AŸ)g,e than one camera is attached, you should pr˚ °dONLNdD5ŸA˚)≈ovide a °dONLNdLBäN(KäQdialog box that asks the user which camera he or she would like to connect with. .°dONLNdûTä`û*The °dONLNd¢Tû`‘)    CmConnect°dONLNd´T‘`”)69 function establishes a connection with the camera specifPİdONLNd‰T”`Ô)ˇied in °dONLNdÎaämΔ(jä
  601. CmPortInfo°dONLNdıaΔmÀ)<. °dONLNd˜aÀm)    CmConnect°dONLNdam)6 and °dONLNdamR)
  602. CmPortInfo°dONLNdaRm‹)<  should be called once for each .°dONLNd/näz3(wä#communication session with a QuickT¥°dONLNdRn2z)®,ake 100 camera. See the descriptions of the .°dONLNd~{äáÿ(ÑäCmGetPortInfo°dONLNdã{ÿá )N function on °dONLNdò{ á$)4page °dONLNdù{$á7)2-22°dONLNd°{7áN), the °dONLNdß{NáÑ)    CmConnect°dONLNd∞{Ñá∏)6 function on °dONLNdΩ{∏á–)4page °dONLNd¬{–á„)2-25°dONLNdΔ{„á)
  603. , and the °dONLNd–àäî“(ëä CmDisconnect°dONLNd‹à“î)H function on °dONLNdÈàî)4page °dONLNdÓàî1)2-27°dONLNdÚà1î )2 for additional information about connecting to a °dONLNd$ïä°´(ûäQuickTï°dONLNd*ï™°X) 'ake 100 camera. See the description of ï°dONLNdQïX°î)Æ
  604. CmPortInfoï°dONLNd[ïî°¢)< on ï°dONLNd_∫)page ï°dONLNddï∫°Õ)2-10ï°dONLNdhïÕ°“). ˇ®@ˇ ˇˇˇˇ@
  605. ˇ·ˇ‚7^
  606. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  607. (‡*2-4    )BUsing the QuickTÇÄ)Dake 100 Driver Software4^*¿¯
  608. ^*k¯4^*k¯°dONLNd^lfã(dlIMPORTİdONLNd^ãfõ)ANT
  609. ˇ·ˇ‚7^
  610. .°dONLNdilu
  611. (rl!Although an application may call ,
  612. Courier°dONLNd5i
  613. uX)ûCmGetPortInfo°dONLNdBiXu´)N successively on as .°dONLNdVulÅÿ(~lmany serial ports as therGİdONLNdouŸÅÈ)me arV °dONLNdsuÈÅx) e available on the host computer? °dONLNdìuxÅ´)è, the driver °dONLNd†Ålç(äl!can interact with only one QuickTœ °dONLNd¡Åço)ïake 100 camera at a time.,Zapf Dingbats3 °dONLNd€Ñuå|)ts
  614. ±*∏¯4≤*∏¯ ≥l≥¯
  615. ˇ·ˇ‚7^ˇˇ‹.ˇ◊°dONLNd›¢l±4(≠lCapturing and Retrieving Imagesˇˇˇˇˇˇ€r(≠2
  616. °dONLNd˛∏lƒØ(¡lJAfter the driver is initialized and the connection is made with the QuickTá°dONLNdH∏؃˜(¡Øake 100 camera, °dONLNdX≈l—™(ŒlIthe application can interact with camera to perform the following tasks: °dONLNd¢€l‚q*n
  617. .°dONLNd§ÿx‰≠) Get the currR`°dONLNd∞ÿ≠‰[)5(ent status of the camera by calling the R`°dONLNdÿÿ[‰µ)ÆCmGetCameraInfoR`°dONLNdÁÿµ‰Ù)Z function. The .°dONLNdˆ‰xœ(Ìxstatus information r@°dONLNd
  618. ‰–¿)X6eturned by this function includes the number of pictur] °dONLNd@‰¿˜)es that have °dONLNdMx¸(˘x been taken, the number of picturŸ °dONLNdm¸ˆ)ê8es that can be taken, camera battery status, and so on. .°dONLNd•¸x(x Refer to the description of the °dONLNd≈¸\)äCmGetCameraInfo°dONLNd‘¸\ê)Z function on °dONLNd·¸ê®)4page °dONLNdʸ®ª)2-28°dONLNd͸ª¿). .°dONLNdÌlq(ln
  619. °dONLNdÔx≈) Get information r≠İdONLNd≈º)M:elated to a particular image in the camera by calling the .°dONLNd:x&ÿ(#xCmGetPictureInfo°dONLNdJÿ&S)` function. The information rR`°dONLNdfS&¯){&eturned by this function includes the .°dONLNdå&x2(/x!size, in bytes, of the image corr·¿°dONLNd≠&2g)àesponding to the picturİdONLNdƒ&h2Ò)he; the image width and height, °dONLNd„2x>(;x'in pixels; the date and time the pictur= °dONLNd
  620. 2>Ö)•e was taken; and so on. °dONLNd#GlNq(Mln
  621. ˇˇã¢.°dONLNd%DxP˝) Retrieve the image by issuing ˇ˛¢Ê:*°dONLNdCD˛Pp)ÜCmGetThumbnailImageˇˇã¢:*°dONLNdVDpP¯)r  (for the thumbnail version) or °dONLNdvPx\‰(YxCmGetFullSizeImage°dONLNdàP‰\M)l (for either the standarR`°dONLNd†PM\[)id-r$¿°dONLNd£P[\∞)esolution or high-r˜ °dONLNd∂PØ\⁄)T
  622. esolution .°dONLNd¿\xhû(ex    version)."†°dONLNd…\üh°)' °dONLNdÀqlxq(wln
  623. .°dONLNdÕnxzò) CapturR`°dONLNd”nòz˘) e an image by calling R`°dONLNdÈn˘zG)aCmTakePictureR`°dONLNdˆnGzâ)N, optionally pr$¿°dONLNdnâz)Beceded by calls to such °dONLNdzxÜÆ(Éxfunctions as °dONLNd*zÆÜ)6CmSetFlashMode°dONLNd8zÜ)T, °dONLNd:zÜg)CmSetPictureMode°dONLNdJzgÜß)`, and possibly °dONLNdYzßÜ—)@CmErase°dONLNd`z—Ü÷)*. °dONLNdcãlóé(îlFor morR`°dONLNdjãéó6)"'e information, see the descriptions of R`°dONLNdëã6óê)®CmGetCameraInfoR`°dONLNd†ãêóû)Z on R`°dONLNd§ãûó∂)page R`°dONLNd©ã∂ó…)2-28R`°dONLNd≠ã…óŒ), °dONLNdØòl§Ã(°lCmGetPictureInfo°dONLNdøòç⁄)` on °dONLNd√ò⁄§Ú)page °dONLNd»òÚ§)2-29°dONLNdÃò§
  624. ),ʡdONLNdΘ
  625. §|)CmGetThumbnailImage°dONLNd·ò|§ä)r on °dONLNdÂòä§¢)page °dONLNdÍò¢§µ)2-54°dONLNdÓòµ§∫), °dONLNd•l±ÿ(ÆlCmGetFullSizeImage°dONLNd•ÿ±Ê)l on °dONLNd•ʱ˛)page °dONLNd •˛±)2-57°dONLNd•±), °dONLNd•±j)CmSetFlashMode°dONLNd•j±x)T on °dONLNd#•x±ê)page °dONLNd(•ê±£)2-42°dONLNd,•£±®), °dONLNd.≤læÃ(ªlCmSetPictureMode°dONLNd>≤Ãæ⁄)` on °dONLNdB≤⁄æÚ)page °dONLNdG≤Úæ)2-41°dONLNdK≤æ), and °dONLNdQ≤æG)CmErase°dONLNdX≤GæU)* on °dONLNd\≤Uæm)page °dONLNda≤mæÄ)2-31°dONLNde≤ÄæÖ). 
  626. „*ͯ4‰*ͯ Âl¯
  627. ˇ·ˇ‚7^ˇˇ‹..ˇ◊°dONLNdh‘l„.(fllClosing the Camera Connectionˇˇˇˇˇˇ€r(fl2
  628. °dONLNdáÔl˚Ë(¯lAfter your application has fij °dONLNd§ÔÈ˚ƒ)}2nished interacting with the camera, it must declarÑ¿°dONLNd÷Ôƒ˚ÿ)€e its .°dONLNd‹¸ld(l8intention to end the session with the camera by calling °dONLNd¸d¨)¯ CmDisconnect°dONLNd ¸¨¡)H and ˇ˛™®°dONLNd%    l“(lCmDisposePortInfoˇˇé8°dONLNd6    “)f . Since the ˇ˛™®*®°dONLNdB    8)0    CmConnectˇˇé8*®°dONLNdK    8¯)6- function establishes an implicit connection .°dONLNdxl"À(lMwith a camera within which the driver functions work, your application must fiüİdONLNdΔÀ"Ï(Àrst end °dONLNdŒ#l/ë(,lany currèİdONLNd÷#ë/Î)%ent connection beforÄİdONLNdÍ#Î/Ô)Z?e it is able to establish a connection and interact with other °dONLNd)0l<Æ(9lcameras, if anyæÄ°dONLNd80≠<=)A , connected to the host computer`°dONLNdX0=<B)ê. °dONLNd[BlN$(Kl*After your application has closed the currZ@°dONLNdÖB$N‡)∏)ent camera connection, it may open a new °dONLNdÆOl[Ú(XlWconnection with the same camera or other cameras connected to the host as described in °dONLNd    \lh*“Establishing a Connection Wò‡°dONLNd    !\h9)Ñith the Camera,”ô†°dONLNd    1\9hô)I earlier in this chapterZ¿°dONLNd    I\ôhû)`. .°dONLNd    Lnlzé(wlFor morR`°dONLNd    Snéz6)"'e information, see the descriptions of R`°dONLNd    zn6z~)® CmDisconnectR`°dONLNd    Ün~zå)H on R`°dONLNd    änåz§)page R`°dONLNd    èn§z∑)2-27R`°dONLNd    ìn∑zÃ) and °dONLNd    ò{lá¢(Ñl    CmConnect°dONLNd    °{¢á∞)6 on °dONLNd    •{∞á»)page °dONLNd    ™{»á€)2-25°dONLNd    Æ{€á‡). ˇ@@ˇ ˇˇˇˇ@
  629. ˇ·ˇ‚7^
  630. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡ä3Sample Code for Retrieving an Image From the Camera
  631. , (‡    2-54^H¿
  632. kHr4lHr mäm
  633. ˇ·ˇ‚7^ˇˇ‹.ˇ◊°dONLNd\äk˝(gäClosing the QuickT©¸°dONLNd\¸kÇ)rake 100 Device Driverˇˇˇˇˇˇ€r(g2
  634. °dONLNd)rä~({äAfter your application has fij °dONLNdFr~–)},nished whatever it had to do with the QuickT@İdONLNdrr–~)…ake 100 device °dONLNdÅäãˇ(àädriver and disconnected fräİdONLNdõˇã)u?om any camera with which it was interacting , it must call the .°dONLNd⁄åäò∞(ïä    function ,
  635. Courier°dONLNd„å∞ò˛)&CmCloseDriver¬†°dONLNdå˝òG)M. This function frï°dONLNdåGòú)Jees the internal strŰdONLNdåúò≤)UucturS`°dONLNdå≤ò)es used by the driverñ°dONLNd0åò)\. °dONLNd3ûä™ (ßäOn the Macintosh platform, °dONLNdNû ™Y)ÅCmCloseDriver°dONLNd[ûY™…)N closes the camera driver¬†°dONLNdtû»™À)o.°dONLNdv∞亨(πäFor morR`°dONLNd}∞¨ºP)"&e information, see the description of R`°dONLNd£∞Pºû)§CmCloseDriverR`°dONLNd∞∞ûº¨)N on R`°dONLNd¥∞¨ºƒ)page R`°dONLNdπ∞ƒº◊)2-21R`°dONLNdΩ∞◊º‹). 
  636. √Hfi4ƒHfi
  637. ÓHˆ4ÔHˆ H
  638. ˇ·ˇ‚7^ˇˇ©.ˇÆ°dONLNd¡€HÓi(ÈH&Sample Code for Retrieving an Image Fr0°dONLNdÁ€jÓÿ(Èjom the CameraˇˇˇˇˇˇV˛)§2
  639. ˇˇƒb.°dONLNdˆˇä π(ä Listing 2-1Db°dONLNdˇ∫ :)0, for the Macintosh computeròä°dONLNdˇ9 ß), shows a function called ˇˇM&nt°dONLNd7ˇ® ÿ)oGetImageˇˇƒbnt°dONLNd?ˇÿ )0 that uses the .°dONLNdN ä™(äQuickTÄİdONLNdT ™E) $ake 100 device driver functions to r®Ä°dONLNdx Eó)õetrieve an image frH`°dONLNdã ò⁄)Som the QuickTo¿°dONLNdò Ÿ¸)Aake 100 °dONLNd†ä%Ø("äcamera.     °dONLNd©>äI∂*$ Listing 2-1°dONLNdµ>ŒI‰)DFUsing the device driver functions to retrieve an image from the QuickT–°dONLNd˚>‰I(F‰ake 100 
  640. QHY4RHY"RH_
  641. ˇ·ˇ‚7^°dONLNdGŒRÎ(OŒcamera
  642. .°dONLNd aäm(jä#include "CmDriver.h"°dONLNd!yäÖ*#define kGenericErr -1°dONLNd8ëäù
  643. *@OSErr GetImage(unsigned short imageNumber, Handle *imageBuffer, °dONLNd{üÆ´D+$unsigned long *imageSize)°dONLNdï≠äπê(∂ä{°dONLNdòªú«ÿ+
  644. OSErr err;°dONLNd§…ú’fi* CameraData °dONLNd±…’8)lcamData;°dONLNdª◊ú„(‡úCmPortInfoHandle °dONLNdŒ◊„b)lportInfoHandle;°dONLNdflÂúÒ(Óúunsigned long °dONLNdÔÂÒD)l
  645. portIndex;°dONLNd˚Ûúˇ(¸úCmPictureInfo °dONLNd ÛˇV)l*pictureInfo;°dONLNdúÃ(
  646. úBoolean °dONLNd$D)l
  647. firstRead;°dONLNd0ú(úunsigned long °dONLNd@P)l actualBytes;°dONLNdM'ä3¯(0ä=/* Open the QuickTake 100 camera driver with CmOpenDriver. */°dONLNdå5úAJ+err = CmOpenDriver(&camData);°dONLNd¨CÆOÜ+$if (err != noErr || camData == NULL)°dONLNd”QÆ]¥* °dONLNd’Q¿]) return err;°dONLNd·iäuú(rä/* ˇˇ¸°dONLNdÂwäÉ*CUse CmGetPortInfo to find a QuickTake 100 camera on a serial port. °dONLNd)Öäëñ**/°dONLNd-ìúü+portIndex = 1;°dONLNd=°ú≠*foundCamera = false;°dONLNdSØúª∞*.while( (err != kNoPortErr) && (!foundCamera) )ˇ    @ˇ ˇˇˇˇ@
  648. ˇ·ˇ‚7^
  649. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  650. (‡*2-6    )B3Sample Code for Retrieving an Image From the Camera4^*¿¯,
  651. Courier
  652. .°dONLNd\lhr(el{°dONLNdjêv+$portInfoHandle = NULL;°dONLNdxêÑÊ*9err = CmGetPortInfo(camData, portIndex, &portInfoHandle);°dONLNdZÜ¢í§++if (err != noErr || portInfoHandle == NULL)°dONLNdäˆ+ return err;°dONLNdò¢êÆÿ(´ê portIndex++;°dONLNdß∫êΔº*2if ((**portInfoHandle).portStatus == kGeoPortFree)°dONLNd›»¢‘+foundCamera = true;°dONLNdÛ÷ê‚®(flêelse°dONLNd˙‰êñ*{°dONLNdˇÚ¢˛»+1err = CmDisposePortInfo(camData, portInfoHandle);°dONLNd5¥ +if (err != noErr)°dONLNdLΔ+ return err;°dONLNdZê(ñ(%ê}°dONLNd]*~6Ñ(3~}°dONLNd`B~N‰*if (!foundCamera)°dONLNdtPê\+return kGenericErr;°dONLNdàhlt~(ql/* °dONLNdåvlÇå*0Use CmConnect to connect to the camera that was °dONLNdΩÑlêP*&found with the CmGetPortInfo function.°dONLNd‰ílûx**/°dONLNdË™~∂t+)err = CmConnect(camData, portInfoHandle);°dONLNd∏~ƒ‰*if (err != noErr)°dONLNd'Δê““+ return err;°dONLNd3filÍ~(Ál/* °dONLNd7Ïl¯z*-Get the image info with the CmGetPictureInfo °dONLNde˙lÄ*.function and fill in the picture information. °dONLNdîlx**/°dONLNdò~"Ï+=pictureInfo = (CmPictureInfo *)NewPtr(sizeof(CmPictureInfo));°dONLNd◊$~0‰*err = MemError();°dONLNdÍ2~>‰*if (err != noErr)°dONLNd˛@êL“+ return err;°dONLNd N~Z⁄(W~:err = CmGetPictureInfo(camData, imageNumber, pictureInfo);°dONLNdG\~h‰*if (err != noErr)°dONLNd[jêv“+ return err;°dONLNdgÇlé~(ãl/* °dONLNdkêlú>*#Allocate the memory for the image. °dONLNdèûl™x**/°dONLNdì¨~∏n+(*imageSize = pictureInfo->imageDataSize;ˇ ≤@ˇ ˇˇˇˇ@
  653. ˇ·ˇ‚7^
  654. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äAsynchronous Operations
  655. , (‡    2-74^H¿,
  656. Courier.°dONLNd\úhz(eú%*imageBuffer = NewHandle(*imageSize);°dONLNd'júv*err = MemError();°dONLNd:xúÑ*if (err != noErr)°dONLNdNÜÆí+ return err;°dONLNdZûä™ú(ßä/* °dONLNd^¨ä∏§*/Retrieve the image from QuickTake 100 with the °dONLNdé∫äΔ8*CmGetFullSizeImage function. °dONLNd¨»ä‘ñ**/°dONLNd∞÷ú‚ +MoveHHi(*imageBuffer);°dONLNd»‰ú*HLock(*imageBuffer);°dONLNdfiÚú˛*firstRead = true;°dONLNdÒú ∂*/err = CmGetFullSizeImage(camData, imageNumber, °dONLNd%“å+6(unsigned char *)**imageBuffer,°dONLNdI“(∞*%*imageSize, firstRead, &actualBytes);°dONLNdp*ú6 (3úHUnlock(*imageBuffer);°dONLNdà8úD*if (err != noErr)°dONLNdúFÆR+ return err;°dONLNd®^äjÜ(gä*/* End your connection with the camera. */°dONLNd‘lúxD+err = CmDisconnect(camData);°dONLNdÚzúÜ*if (err != noErr)°dONLNdàÆî+ return err;°dONLNd†ä¨™(©ä0/* Dispose of the camera port info structure. */°dONLNdDÆú∫¬+1err = CmDisposePortInfo(camData, portInfoHandle);°dONLNdwºú»*if (err != noErr)°dONLNdã Æ÷+ return err;°dONLNdó‚äÓ(Îä/* Close the driver. */°dONLNd∞ú¸J+err = CmCloseDriver(camData);°dONLNdœ˛ú
  657. *if (err != noErr)°dONLNd„ Æ+ return err;°dONLNd$ú0Í(-úreturn noErr;°dONLNd˛2ä>ê(;ä}
  658. KHf4LHf
  659. vH~4wH~ xHx
  660. ˇ·ˇ‚7^ˇˇ©.ˇÆ°dONLNdcHvÖ(qHAsynchr¿>°dONLNdcÖv)=onous OperationsˇˇˇˇˇˇV˛(q2
  661. .°dONLNdáäì∂(êäOn the WÛ`°dONLNd"áµìd)+'indows platform, each of the functions Û`°dONLNdIádì≤)ØCmTakePictureÛ`°dONLNdVá≤ì∑)N, °dONLNdXî䆸(ùäCmGetThumbnailImage°dONLNdk)r, °dONLNdmî†m)CmGetFullSizeImage°dONLNdîm†Ö)l, and °dONLNdÖîÖ†Ø)CmErase°dONLNdåîØ†ı)* has an asynchrR`°dONLNdõîı†)Fonous °dONLNd°°ä≠ã(™ä6counterpart whose name is derived by appending the worR`°dONLNd◊°ã≠ì(™ãd R`°dONLNdŸ°ì≠±)AsyncR`°dONLNdfi°±≠) at the end of the °dONLNdÒÆä∫    (∑äfunction name (for example, °dONLNdÆ    ∫u)CmTakePictureAsync°dONLNdÆu∫)l"). On the Macintosh platform, the ˇ‚@ˇ ˇˇˇˇ@
  662. ˇ·ˇ‚7^
  663. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  664. (‡*2-8    )BQuickT@)ake 100 Device Driver Reference4^*¿¯
  665. .°dONLNd\lhñ(el
  666. functions ,
  667. Courier°dONLNd
  668. \ñh¿)*CmErase°dONLNd\¿h’)* and °dONLNd\’h#)CmTakePicture°dONLNd#\#hc)N have asynchrR`°dONLNd0\chÔ)@ onous counterparts. The goal of .°dONLNdPiluü(rl the asynchrÅİdONLNd[iüu…)3Fonous set of functions is to allow applications to have a separate thr'@°dONLNd°i uÁ(r ead of °dONLNd®vlÇv(l9execution when performing these functions with the QuickT_¿°dONLNd·vvÇ—(vake 100 camera. The °dONLNdıÉlèé(ålasynchr$ °dONLNd¸ÉèèÁ)#Nonous functions allow the user to perform other operations, such as typing or °dONLNdJêlú5(ôl/editing text, during the time in which a picturIİdONLNdyê6úà) e is being transferrk °dONLNdçêàúú)Red frÈ`°dONLNdíêúúÍ)om the camera to °dONLNd£ùl©º(¶lthe host computer'‡°dONLNd¥ùº©¡)P. °dONLNd∑ØlªÊ(∏lThe means by which the difÿ†°dONLNd—ØÊªÚ)zferª °dONLNd‘ØÚª) ent thrÒ@°dONLNd€ØªC) eads synchr7¿°dONLNdÊØDª„)5%onize their execution is supplied by °dONLNd ºl»6(≈l.your application in the form of a completion r @°dONLNd9º6»π) outine for each of the asynchrû¿°dONLNdWºπ»÷)Éonous .°dONLNd]…l’Â(“lfunctions. The completion rR`°dONLNdx…Â’)youtine R`°dONLNd…’ì)CmAsyncCompletionRoutineR`°dONLNdó…ì’Œ)ê is shown her$¿°dONLNd§…Œ’ÿ);e: °dONLNd®‚lÓ8(Îl"typedef void (CallbackProc)(void);°dONLNdÀl¸ò*2typedef CallballProc* CmAsyncCompletionRoutinePtr;.°dONLNd˛lx*<For a complete description of how to use the application-defiY†°dONLNd;yƒ(yned completion r¥‡°dONLNdKƒı)K outine, see °dONLNdWl!ç(lthe defiœÄ°dONLNd_ç!∑)!
  669. nition on A¿°dONLNdi∏!œ)+page †°dONLNdn–!‚)2-33pİdONLNdr‚!Á). °dONLNdu'l3Ã(0lAlthough the asynchr¢°dONLNdâ'Ã3-)`onous functions do prΔ °dONLNdû'-3Ì)a*ovide a means by which an application can °dONLNd»4l@o(=lrE°dONLNd…4p@ó)    eceive prÁ‡°dONLNd“4ó@•)'ogr±Ä°dONLNd’4¶@Ù)ess information fr…`°dONLNdÁ4Ù@b)Nom an operation asynchr≠‡°dONLNd˛4b@Ö)nonously
  670.  °dONLNd4Ö@µ)# , neither WP‡°dONLNd4µ@Í)0 indows nor °dONLNdAlM˝(Jl!the Macintosh Finder acts as a pr◊İdONLNd<A˝Ml)ëeemptive multitasking arÊ °dONLNdTAlMí)o    chitecturö‡°dONLNd]AìM“)'e. It is still the °dONLNdpNlZo(WlrE°dONLNdqNpZs)<esponsibility of the application to implement the callback rn°dONLNd≠NsZ€(Wsoutines within the confiİdONLNd≈N‹ZÌ)ines °dONLNd…[lgã(dlof the rο°dONLNd—[ãg) espective operating-system envir≥¿°dONLNdÒ[gC)íonment. 
  671. u*ɯ4v*ɯ    °dONLNd˙tl(|lNote
  672. ˇ·ˇ‚7^
  673. .°dONLNdˇÅlç§* The asynchrR`°dONLNd
  674. ŧçË)8onous functions R`°dONLNdÅËçx)DCmGetThumbnailImageAsyncR`°dONLNd2Åxçç)ê and °dONLNd7çlôˆ(ñlCmGetFullSizeImageAsync°dONLNdNçˆô)ä arR`°dONLNdQçôô) !e not available on the Macintosh .°dONLNdrôl•ï(¢l    platform.,Zapf Dingbatsº‡°dONLNd|úö§†).u
  675. 
  676. ‡°dONLNd}ô°•£) 
  677. ≤*¿¯4≥*¿¯    °dONLNd±lº(πlNote
  678. ˇ·ˇ‚7^
  679. .°dONLNdÑæl ø*All of the asynchrR`°dONLNdñæø )Sonous functions R`°dONLNd¶æ ì)DCmGetThumbnailImageAsyncR`°dONLNdææì ò)ê, °dONLNd¿ l÷ˆ(”lCmGetFullSizeImageAsync°dONLNd◊ ˆ÷˚)ä, °dONLNdŸ ˚÷g)CmTakePictureAsync°dONLNdΠg÷l)l, °dONLNdÌ÷l‚¥(fll CmEraseAsync°dONLNd˘÷¥‚Ã)H, and °dONLNdˇ÷ÂP)CmCancelAsyncOperation°dONLNd÷P‚\)Ñ arR`°dONLNd÷\‚ü) e supported by °dONLNd'‚lÓâ(Îlthe WÛ`°dONLNd,‚àÓÀ)indows QuickT`°dONLNd9‚ÀÓ)Cake 100 DLL. `°dONLNdF‚Ót)=CmTakePictureAsync`°dONLNdX‚tÓâ)l and °dONLNd]Ól˙¥(˜l CmEraseAsync°dONLNdiÓ¥˙¿)H arR`°dONLNdlÓ¿˙) e the only asynchr$¿°dONLNd~Ó˙§)S!onous functions supported on the .°dONLNdü˙lΔ(lMacintosh platform.¢`°dONLNd≥˝À—)_u
  680. `°dONLNd¥˙—”) 
  681.  *'¯4*'¯
  682. 7*?¯48*?¯ 9*9˛
  683. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNd∑$*7_(2*QuickT·å°dONLNdΩ$^7&)4ake 100 Device Driver Refer◊°dONLNdÿ$&7F)»enceˇˇˇˇˇˇV˛) 2
  684. °dONLNdfiHlT¿(QlThe device driver rᇰdONLNdÒH¿T–)Tefer4°dONLNdıH—T¯)ence defi{°dONLNd˛H¯T)'9nes all of the data types and functions supported by the °dONLNd7Ulaå(^lQuickTÄİdONLNd=UåaÈ) ake 100 device driver£°dONLNdRUÈaÓ)]. 
  685. ç*ï¯4é*ﯠê*ê˛
  686. ˇ·ˇ‚7^°dONLNdU}*çS(â*Data T∏ °dONLNd[}RçÃ)(ypes for the QuickT`°dONLNdn}Ãçî)zake 100 Device Driver Functionsˇˇˇˇˇˇ(âÒ2
  687. °dONLNdèïl°+(ûl.This section describes all of the data types r¿°dONLNdΩï+°;)øeferú‡°dONLNd¡ï<°ó)enced by the QuickT °dONLNd‘ïó°˜)[ake 100 device driver °dONLNdÍ¢lÆæ(´lfunctions. The defi˘ °dONLNd˝¢æÆÁ)R
  688. nitions ar¶Ä°dONLNd¢ËÆU)*e found in the CmDriverÌ@°dONLNd¢TÆd)l.h fiÀ`°dONLNd#¢eÆπ)le for Macintosh prʰdONLNd6¢πÆÔ)T ograms and °dONLNdAØlªï(∏l    in the QTV`°dONLNdJØïª»))    AKE-D.H fiÍ¿°dONLNdTØ»ªÎ)3le for Wà°dONLNd\ØÎª)#    indows prÚ@°dONLNdeت>)-ograms. ˇ–@ˇ ˇˇˇˇ@
  689. ˇ·ˇ‚7^
  690. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  691. , (‡    2-94^H¿
  692. jHr4jHr lHl
  693. ˇ·ˇ‚7^ °dONLNd\Hjã(fH
  694. CameraDataˇˇˇˇˇˇ(f2
  695. .°dONLNd {äáû(ÑäThe ,
  696. Courier°dONLNd{ûá⁄)
  697. CameraData°dONLNd{⁄áé)<( data type is native to the Macintosh prR`°dONLNdB{éá⁄)¥ogramming envir$¿°dONLNdQ{⁄á)L onment and .°dONLNd\àäîö(ëädefir °dONLNd`àõîπ)ned as .°dONLNdh°ä≠V(™ä"typedef CmCameraData* CameraData; .°dONLNdãπä≈µ*    For the W»°dONLNdîπµ≈Ô)+ indows envir†°dONLNd†π≈7);onment it is defi– °dONLNd±π7≈S)Gned as.°dONLNd∏“äfi\(€ä#typedef unsigned short CameraData; .°dONLNd‹Í䈪*
  698. All QuickTòİdONLNdÊÍ∫ˆJ)0!ake 100 device driver functions rà†°dONLNdÍJˆa)êequirü‡°dONLNd Íaˆ˘)%e a data item of this type as their fi±‡°dONLNd2͢ˆ)òrst ˇˇU*.°dONLNd6˜ä∫(ä    parameter¬†°dONLNd?˜π€)/    , except ˇ˝ˇ~lÙ°dONLNdH˜‹$)# CmOpenDriverˇˇU*Øî°dONLNdT˜#ê)G, which expects the addr÷ú°dONLNdl˜ê)m!ess of a data item of this type. .°dONLNdé    ä•(äFor Wj†°dONLNdì    •º)>indows, the parameter must be the handle of the application prV`°dONLNd—    º(ºogram (the variable .°dONLNdÂä"¨(äthat WÛ`°dONLNdδ"e)!)indows gives to your application as the fiÛ`°dONLNde"∞)∫rst parameter to Û`°dONLNd&∞"⁄)KWinMainÛ`°dONLNd-⁄"„)*). Û`°dONLNd0„")    WinMainÛ`°dONLNd7")* .°dONLNd8#ä/Ó(,äand other items specifi¶ °dONLNdO#Ó/    )dcally rª@°dONLNdV#    /)eferg`°dONLNdZ#/N)
  699. enced by W‚ °dONLNdd#M/Æ)3indows application pr? °dONLNdy#Ø/€)b    ograms arå`°dONLNdÇ#€/), e described °dONLNdé0ä<l(9ä1in the documentation that accompanies the softwar«Ä°dONLNdø0l<})‚e prÿ@°dONLNd√0}< )ogramming envir/°dONLNd“0À<)N onment with °dONLNdfi=äI±(Fäwhich W≈¿°dONLNdÂ=±I)'indows applications ar]†°dONLNd˚=I%)ee cr‹Ä°dONLNdˇ=%IA)eated. °dONLNdOä[(XäFor the Macintosh computer>`°dONLNd!O[€)}/, this parameter must be the pointer whose addr‚†°dONLNdPO€[Ù)‘ess is .°dONLNdW\äh∫(eä
  700. handed to °dONLNda\∫h)0 CmOpenDriver¬†°dONLNdm\h)G. 
  701. ôH°4ôH° õHõ
  702. ˇ·ˇ‚7^ .°dONLNdpãHô\(ïHBufIİdONLNdsã\ô{)ferPtrˇˇˇˇˇˇ(ï2
  703. .°dONLNd{´ä∑û(¥äThe °dONLNd´û∑‘)    BufferPtr°dONLNdà´‘∑h)6" data type is a pointer to an addrR`°dONLNd™´h∑)î&ess containing information to be used .°dONLNd–∏äƒı(¡äby a function or an addr[°dONLNdË∏ıƒ+)kess used to r≈°dONLNdı∏+ƒÑ)6eceive information r° °dONLNd    ∏уË)Yeturned by a function. .°dONLNd! ä÷
  704. (”äFor the Macintosh platform °dONLNd< 
  705. ÷@)Ä    BufferPtr°dONLNdE @÷^)6 is defi°dONLNdM ^÷z)ned as°dONLNdT„äÔP(Ïä!typedef unsigned char* BufferPtr;°dONLNdv˚ä∏*    For the WÛ`°dONLNd˚∑)-indows platform Û`°dONLNdè˚:)M    BufferPtrÛ`°dONLNdò˚:X)6 is defiÛ`°dONLNd†˚Xt)ned as°dONLNdßä h(ä%typedef unsigned char far* BufferPtr;
  706. /H=40H=    .°dONLNdÕ.ä9ù*Note
  707. ˇ·ˇ‚7^
  708. .°dONLNd“;äGï*WÛ`°dONLNd”;îGE)
  709. 'indows applications should not use the Û`°dONLNd˙;EG{)±    BufferPtrÛ`°dONLNd;{G¥)6 type as it is °dONLNdGäSú(Pädefi°dONLNdGúSæ)ned herR`°dONLNdGæS=)"e when making a call to the R`°dONLNd9G=S©)CmGetFullSizeImageR`°dONLNdKG©S´)l .°dONLNdLSä_Ô(\äfunction, described on Ø¿°dONLNdcSÔ_)epage 䆰dONLNdhS_)2-57fiİdONLNdlS_E) , if the buf≠ °dONLNdxSF_X)-fer r@°dONLNd}SY_p)equirİdONLNdÇSp_ƒ)ed for the image is .°dONLNdñ_äkì(hägrR`°dONLNdò_ìkC)    'eater than 64KB. Instead, use type coer$¿°dONLNdø_Ckñ)∞cion to change the $¿°dONLNd“_ñkÃ)S    BufferPtr$¿°dONLNd€_ÃkŒ)6 °dONLNd‹käwæ(tä type of the °dONLNdËkæw)4 imageBuffer°dONLNdÛkw?)B parameter to °dONLNdk?w±)?unsigned char huge*°dONLNdk±w∂)r. ,Zapf Dingbats.°dONLNdnªv¡)
  710. u
  711. .Œ°dONLNdk¡w√) ˇr@ˇ ˇˇˇˇ@
  712. ˇ·ˇ‚7^
  713. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  714. (‡*2-10    )BQuickT@)ake 100 Device Driver Reference4^*¿¯°dONLNd\*eQ(c*SEE ALSO,
  715. Courier
  716. .°dONLNd    klwfi+BCmGetThumbnailImage°dONLNdkfiwÏ)r on °dONLNd kÏw)page °dONLNd%kw)2-54°dONLNd)kw), °dONLNd+kw¨)CmGetThumbnailImageAsync°dONLNdCk¨w∫)ê on °dONLNdGk∫w“)page °dONLNdLk“wÂ)2-56°dONLNdPkÂwÍ), °dONLNdRxlÑÿ(ÅlCmGetFullSizeImage°dONLNddxÿÑÊ)l on °dONLNdhxÊÑ˛)page °dONLNdmx˛Ñ)2-57°dONLNdqxÑ), °dONLNdsxц)CmGetFullSizeImageAsync°dONLNdäx†ÑÆ)ä on °dONLNdéxÆÑΔ)page °dONLNdìxΔÑŸ)2-60°dONLNdóxŸÑfi), °dONLNdôÖlë¿(élCmSetOwnerName°dONLNdßÖ¿ëŒ)T on °dONLNd´ÖŒëÊ)page °dONLNd∞ÖÊë˘)2-40°dONLNd¥Ö˘ë), and °dONLNd∫Öëq)CmGetDecompTable°dONLNd Öqë)` on °dONLNdŒÖëó)page °dONLNd”Öóë™)2-45°dONLNd◊Ö™ë≠).
  717. ¡* ¯4¬*…¯ √*√˛
  718. ˇ·ˇ‚7^ .°dONLNdŸ¥*¬}(æ*CmStdFeaturesˇˇˇˇˇˇ(æÚ2
  719. ˇˇ€ê.°dONLNdË”lfl(‹lThe ˇˇí∞[ê°dONLNdÏ”ÄflŒ)CmStdFeaturesˇˇ€ê[ê°dONLNd˘”Œfl€)N str# °dONLNd˝”‹flÚ)ucturıİdONLNd”Òfl)e pr£p°dONLNd”fl˜)6ovides information about the version of the Macintosh .°dONLNd<‡lÏå(ÈlQuickTÄİdONLNdB‡åÏ„) ake 100 driver or W°dONLNdU‡„Ï)W indows DLL. .°dONLNdb˘lÃ(ltypedef struct {°dONLNdt~“+short version;°dONLNdÉl!>(l#} CmStdFeatures, *CmStdFeaturesPtr;
  720. /*>¯4/*=¯    .°dONLNdß.l9∏*Field descriptions
  721. ˇ·ˇ‚7^
  722. .°dONLNd∫;lGñ*version.°dONLNd¬;‰GØ)x+Macintosh: The version number of the QuickTᆰdONLNdÌ;ØGÌ)Àake 100 driver°dONLNd¸G‰SÓ(P‰WÛ`°dONLNd˝GÌS8)    indows: The curr= °dONLNdG9Sú)Lent version of the DLL&`°dONLNd#GúSû)c °dONLNd%m*vQ(t*SEE ALSO
  723. .°dONLNd.zlÜÃ+BCmGetStdFeatures°dONLNd>zÃÜ⁄)` on °dONLNdBz⁄ÜÚ)page °dONLNdGzÚÜ)2-35°dONLNdKzÜ) 
  724. ∑*ø¯4∑*ø¯ π*π˛
  725. ˇ·ˇ‚7^ .°dONLNdM©*∑k(≥*
  726. CmPortInfoˇˇˇˇˇˇ(≥Ú2
  727. .°dONLNdY…l’Ä(“lThe °dONLNd]…Ä’º)
  728. CmPortInfo°dONLNdg…º’ )< strl°dONLNdk… ’‡)uctur>`°dONLNdp…‡’ä)%e contains information about a QuickTS`°dONLNdï…â’Ò)©ake 100 camera that is °dONLNd¨÷l‚z(fll<attached to a host serial port. When you make a call to the °dONLNdË÷z‚∞(flz    CmConnect°dONLNdÒ÷∞‚„)6 function to °dONLNd˛„lÔ(Ïl$establish a connection with a QuickTï°dONLNd"„Ôñ)¶ake 100 camera, you pass the ï°dONLNd?„ñÔ“)Ñ
  729. CmPortInfoï°dONLNdI„“Ô‘)< .°dONLNdJl¸w(˘lstrfi°dONLNdMw¸é) ucturc‡°dONLNdRè¸î):e for the port and camera with which you want to connect. .°dONLNdçls( lYï°dONLNdérÇ)ou rg`°dONLNdíÇ∑) etrieve the g`°dONLNdû∑Û)5
  730. CmPortInfog`°dONLNd®Û)< strS`°dONLNd¨)uctur%¿°dONLNd±S)e for a specifi%¿°dONLNd¿SΩ)<ed serial port with the °dONLNdÿl∫(lCmGetPortInfo°dONLNdÂ∫Â)N  function. °dONLNdÒ(l4Ã(1ltypedef struct {°dONLNd6~B¢+Handle°dONLNd6ÿB)Z    portIcon;°dONLNdD~P“(M~StringHandle  °dONLNd,DÿP)Z    portName;°dONLNd7R~^“([~unsigned long °dONLNdJRÿ^)Z portStatus;°dONLNdW`~l(i~StringHandle   appName;°dONLNdpn~z*unsigned char  familyID;°dONLNdä|~à*unsigned char  deviceID;°dONLNd§ä~ñ *unsigned short beaconParam;°dONLNd¡ò~§®*Handle °dONLNdÕòÿ§)Z portConfig;°dONLNd⁄¶~≤Ã(Ø~unsigned long°dONLNd϶ÿ≤)Z
  731. DataSpeed;°dONLNd˜¥l¿ò(Ωl2} CmPortInfo, *CmPortInfoPtr, **CmPortInforHandle;ˇ™@ˇ ˇˇˇˇ@
  732. ˇ·ˇ‚7^
  733. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  734. , (‡2-114^H¿
  735. ^Hl4^Hl    °dONLNd]äh÷(eäField descriptions
  736. ˇ·ˇ‚7^,
  737. Courier
  738. .°dONLNd&jäv∫*portIcon.°dONLNd/jvZ)xHandle of the icon r{¿°dONLNdCjZvh)Xepr İdONLNdFjivª)esenting this port. .°dONLNd[yäÖ∫(ÇäportName.°dONLNddyÖq)xOperating-system-specifi§Ä°dONLNd|yqÖÈ)oc name of this port. On the °dONLNdòÖë©(é'Macintosh it is a handle to a length-pr@°dONLNdøÖ™ë¥)®efiı†°dONLNd¬Ö¥ë¸)
  739. xed Pascal-style °dONLNd”ëùK(östring. On the W8‡°dONLNd„ëKù)I*indows platform it is a null-terminated C °dONLNdù© (¶string. .°dONLNd¨ä∏Δ(µä
  740. portStatus°dONLNd!¨∏)xThe °dONLNd%¨∏R)
  741. portStatus°dONLNd/¨R∏[)< fi°dONLNd2¨[∏Ù)    #eld contains one of these symbolic .°dONLNdU∏ƒ∫(¡,constants indicating the status of the port:.°dONLNdÇ«”J* kGeoPortFree.°dONLNdè«t”{)rA∫†°dONLNdê«{”) GeoPort device is attached on °dONLNdØ”tflº(‹tthis port and is r=@°dONLNd¡”ΩflÍ)I
  742. eady to pr0¿°dONLNdÀ”Ífl)-ocess °dONLNd—fltÎÆ(Ët commands fr–¿°dONLNd‹flÆÎ‰): om the host..°dONLNdÈÓ˙8(˜    kPortFree.°dONLNdÙÓt˙{)rA∫†°dONLNdıÓ{˙û) QuickT; °dONLNd¸Óû˙)#ake 100 camera is attached °dONLNd˙t (ton this port and is r °dONLNd,˙À¯)W
  743. eady to pr˜†°dONLNd6˙˜),ocess °dONLNd<tÆ(t commands fr–¿°dONLNdGƉ): om the host..°dONLNdT!\(kInUseByGeoPort.°dONLNddt!{)rA∫†°dONLNde{!∫) GeoPort awark°dONLNdrª!)@e application is °dONLNdÉ!t-(*t&using the serial port. The family ID, °dONLNd©-t9*  device ID, and beacon parameter .°dONLNd…9tEö*     will be rR`°dONLNd“9öE€)&eturned in the R`°dONLNd·9€E )AfamilyIDR`°dONLNdÈ9 E)0, °dONLNdÎEtQ§(NtdeviceID°dONLNdÛE§Qº)0, and °dONLNd˘EºQ˛) beaconParam°dONLNdE˛Q)B .°dONLNdQt]z(Ztfiå¿°dONLNdQz]í)elds r‹Ä°dONLNdQí]√) espectivelyİdONLNdQ√]»)1. .°dONLNd`lV(ikInUseBySerial.°dONLNd*`tl)r$Another serial application is using °dONLNdNltx∂* the serial port. .°dONLNd`{á\(ÑkInUseByUnknown.°dONLNdp{tá)r$Another serial application is using °dONLNdîátì∂* the serial port. .°dONLNd¶ñ¢h(ükInUseByLocalTalk.°dONLNd∏ñt¢•)r
  744. The LocalT€`°dONLNd¬ñ§¢)0alk driver is using the °dONLNd⁄¢tÆ•(´tserial port. .°dONLNd˱äΩ¥(∫äappName.°dONLNd±Ω)xNull. .°dONLNd˜¿äÃ∫(…äfamilyID.°dONLNd¿Ã{)xThe GeoPort family identifiÆÄ°dONLNd¿{Ã
  745. )y"cation for digital image devices. °dONLNd=ÃÿG(’When a QuickTχ°dONLNdJÃFÿÿ)D"ake 100 camera is attached, this fi› °dONLNdmßÿ)ìeld contains .°dONLNdzÿ‰î(· the value 1 and has the constant°dONLNdöÿî‰∞)í name °dONLNd†ÿ∞‰Ú) kCmFamilyID°dONLNd´ÿÚ‰˜)B. °dONLNdÆÁäÛ∫(ädeviceID.°dONLNd∑ÁÛ{)xThe GeoPort device identifi‘†°dONLNd“Á{Û)ycation for the camera. When a °dONLNdÛˇ"(¸QuickTÄİdONLNdˆÛ"ˇ¥) "ake 100 camera is attached, this fip¿°dONLNdÛµˇ˝)ìeld contains the .°dONLNd*ˇ û("value 1 and has the constant name °dONLNdLˇû ‡)ú kCmDeviceID°dONLNdWˇ‡ „)B.°dONLNdYäÃ(ä beaconParam.°dONLNde )x*The GeoPort beacon parameter of the QuickT¿°dONLNdè )»ake 100 camera. °dONLNdü&<(#This value is ú@°dONLNd≠<&K):256ú@°dONLNd∞K&M)..°dONLNd≤)ä5Δ(2ä
  746. portConfig.°dONLNdΩ)5µ)x&Operating system dependent. Reserved. .°dONLNd‰8äD¿(Aä    DataSpeed.°dONLNdÓ8D)x=The data transfer rate in bits per second of this port. BeforO‡°dONLNd+8D)ˇe an °dONLNd0DPÎ(M5actual camera connection is made, the value of this fiÅ`°dONLNdfDÎP)È
  747. eld is 0. °dONLNdpP\û(Y$After the connection is made, this fiO¿°dONLNdïPü\Á)ùeld contains the °dONLNd¶\h(eapprI@°dONLNd™\hÂ)2opriate value for the data transfer rate. See the .°dONLNd‹htT(qdescription of the °dONLNdÔhTt¢)RCmGetPortInfo°dONLNd¸h¢t÷)N function on °dONLNd    h÷tÓ)4page °dONLNdhÓt)2-22°dONLNdht) °dONLNdtÄ(}and °dONLNdtÄK)    CmConnect°dONLNd tKÄ)6 function on °dONLNd-tÄó)4page °dONLNd2tóÄ™)2-25°dONLNd6t™ÄÃ) for morR`°dONLNd>tÃÄ )"e information .°dONLNdLÄåw(âabout data transfer speed. ˇÜ@ˇ ˇˇˇˇ@
  748. ˇ·ˇ‚7^
  749. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  750. (‡*2-12    )BQuickT@)ake 100 Device Driver Reference4^*¿¯°dONLNd\*eQ(c*SEE ALSO,
  751. Courier
  752. .°dONLNd    jlv¢+B    CmConnect°dONLNdj¢v∞)6 on °dONLNdj∞v»)page °dONLNdj»v€)2-25°dONLNdj€v‡), °dONLNd!j‡v.)CmGetPortInfo°dONLNd.j.v0)N °dONLNd/j0vH)page °dONLNd4jHv[)2-22°dONLNd8j[v`), °dONLNd:j`vΔ)CmDisposePortInfo°dONLNdKjΔv‘)f on .°dONLNdOwlÉÉ(Älpage Z‡°dONLNdTwÑÉñ)2-24Æ¿°dONLNdXwñÉò) 
  753. ≥*º¯4¥*ª¯ µ*µ˛
  754. ˇ·ˇ‚7^ °dONLNdZ¶*¥(∞*CmProductInfoˇˇˇˇˇˇ(∞Ú2
  755. .°dONLNdi≈l—Ä(ŒlThe °dONLNdm≈Ä—Œ)CmProductInfo°dONLNdz≈Œ—‹)N strl°dONLNd~≈‹—Ú)uctur>`°dONLNdÉ≈Ú—)e pr¿°dONLNdá≈—-)    ovides pr„ °dONLNdê≈,—f)) oduct-specifi„ °dONLNdù≈f——):c information about the .°dONLNdµ“lfiå(€lQuickTÄİdONLNdª“åfi‘) ake 100 camera. .°dONLNdÃÎl˜Ã(Ùltypedef struct {°dONLNd›˘lú*    char°dONLNdÊ˘ú¢)0 °dONLNdÌ˘Í>)NvendorName[8];°dONLNd¸lú(l    char°dONLNd ÍÜ)~productIdentification[16];°dONLNd&l!“(l    unsigned char°dONLNd>Í!h)~hardwareVersion[2];  °dONLNdT#l/“(,l    unsigned char°dONLNdl#Í/\)~firmwareVersion[2];°dONLNdÄ1l=>(:l#} CmProductInfo, *CmProductInfoPtr;
  756. K*Z¯4K*Y¯    .°dONLNd§JlU∏*Field descriptions
  757. ˇ·ˇ‚7^
  758. .°dONLNd∑Wlc®*
  759. vendorName.°dONLNd¬W‰c)x
  760. An 8-byte 0‡°dONLNdÃWcÊ)./ASCII string containing the name of the camera °dONLNd˚c‰o(l‰vendorá¿°dONLNdco). .°dONLNdrl~Í({lproductIdentification°dONLNd~‰äÏ+x AÛ`°dONLNd~Îä)     16-byte ï°dONLNd$~äô)&ASCII string containing the prg`°dONLNdB~ôäŒ)à oduct name.g`°dONLNdM~Œä‘)5 °dONLNdOçlôΔ(ñlhardwareVersion.°dONLNd_ç‰ôı)xHarñ`°dONLNdbçıô )dwarŒ °dONLNdfç ôt)e version of the camera:°dONLNdô‰•õ(¢‰(Byte 0 contains the major version numberô °dONLNdßôõ•ù)∑.°dONLNd©•‰±ù(Ɖ(Byte 1 contains the minor version number¸ °dONLNd—•ú±°)∏. .°dONLNd‘¥l¿Δ(ΩlfirmwareVersion.°dONLNd‰¥‰¿
  761. )xFirmwar⁄ °dONLNdÎ¥
  762. ¿r)&e version of the camera:°dONLNd¿‰Ãõ(…‰(Byte 0 contains the major version numberô °dONLNd,¿õÃù)∑.°dONLNd.Éÿù(’‰(Byte 1 contains the minor version number¸ °dONLNdVÃúÿ°)∏. °dONLNdYÚ*˚Q(˘*SEE ALSO
  763. .°dONLNdbˇl Ã+BCmGetProductInfo°dONLNdrˇÃ ⁄)` on °dONLNdvˇ⁄ Ú)page °dONLNd{ˇÚ )2-37°dONLNdˇ 
  764. ). 
  765. <*D¯4<*D¯ >*>˛
  766. ˇ·ˇ‚7^ .°dONLNdÇ.*<w(8*
  767. CmDateAndT'¿°dONLNdå.w<ã)Mimeˇˇˇˇˇˇ(8Ú2
  768. .°dONLNdëNlZÄ(WlThe °dONLNdïNÄZŒ)CmDateAndTime°dONLNd¢NŒZ‹)N strl°dONLNd¶N‹ZÚ)uctur>`°dONLNd´NÚZC)e contains the curr¿°dONLNdæNCZ≈)Qent date and time of a specifi¿°dONLNd‹N≈Z“)Çed .°dONLNdfl[lgå(dlQuickTÄİdONLNdÂ[åg‘) ake 100 camera. .°dONLNdˆtlÄÃ(}ltypedef struct {°dONLNdÇ~éÃ+unsigned char°dONLNdÇÍé)lmonth;°dONLNd#ê~úÃ(ô~unsigned char°dONLNd6êÍú)lday;°dONLNd<û~™Ã(ß~unsigned char°dONLNdOûÍ™)lyear;°dONLNdV¨~∏Ã(µ~unsigned char°dONLNdi¨Í∏)lhour;ˇf@ˇ ˇˇˇˇ@
  769. ˇ·ˇ‚7^
  770. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  771. , (‡2-134^H¿,
  772. Courier.°dONLNd\úhÍ(eúunsigned char°dONLNd\h2)lminute;°dONLNdjúvÍ(súunsigned char°dONLNd/jv2)lsecond;°dONLNd7xäÑ\(Åä#} CmDateAndTime, *CmDateAndTimePtr;
  773. ëH†4íH†    .°dONLNd[ëäú÷*Field descriptions
  774. ˇ·ˇ‚7^
  775. .°dONLNdnûä™®*month.°dONLNdtû™Q)xMonth of the year†°dONLNdÖûQ™…)O. Number in the range 1 thr °dONLNd†û…™Ó)xough 12..°dONLNd©≠äπú(∂äday.°dONLNd≠≠π»)x+Day of the month. Number in the range 1 thrú@°dONLNdÿ≠»πÌ)Δough 31..°dONLNd·ºä»¢(≈äyear.°dONLNdʺ»µ)x*Last two digits in the year of the centuryi°dONLNdº¥»¸)≤. For example, a °dONLNd!»‘(—6value of 93 means the year 1993 (can also mean 2093). °dONLNdW‘‡u* Number in the range 0 thr˙İdONLNdp‘u‡ù)s    ough 99. .°dONLNdz„äÔ¢(Ïähour.°dONLNd„ÔH)xHour of the dayˆÄ°dONLNdé„GÔ    )E+. Number in the range 0 though 23 (24-hour °dONLNdπÔ˚n(¯base; for example, 2:00 PÑ@°dONLNd“Ôm˚ô)k .M. is 14.)..°dONLNdfl˛ä
  776. Æ(äminute.°dONLNdÊ˛
  777. U)xMinute of the hourl °dONLNd¯˛U
  778. Õ)S. Number in the range 0 thrʆ°dONLNd˛Õ
  779. Ú)xough 59..°dONLNdäÆ(äsecond.°dONLNd#ÿ)x/Second of the minute. Number in the range 0 thrû`°dONLNdRÿ˝)÷ough 59.°dONLNd[2H;o(9HSEE ALSO
  780. .°dONLNdd@äLÍ+BCmSetDateAndTime°dONLNdt@ÍL¯)` on °dONLNdx@¯L)page °dONLNd}@L#)2-39°dONLNdÅ@#L(), °dONLNdÉ@(LÇ)CmGetCameraInfo°dONLNdí@ÇLê)Z on °dONLNdñ@êL®)page °dONLNdõ@®Lª)2-28°dONLNdü@ªL¿), °dONLNd°MäYÍ(VäCmGetPictureInfo°dONLNd±MÍY¯)` on °dONLNdµM¯Y)page °dONLNd∫MY#)2-29°dONLNdæM#Y%) 
  781. âHí4äHë ãHã
  782. ˇ·ˇ‚7^ .°dONLNd¿|Häã(ÜH CmInterfaceˇˇˇˇˇˇ(Ü2
  783. .°dONLNdÕõäßû(§äThe °dONLNd—õû߇) CmInterface°dONLNd‹õ‡ßÓ)B strl°dONLNd‡õÓß)uctur>`°dONLNdÂõß)e defi>`°dONLNdÎõ߸)/nes the communication parameters for the QuickTS`°dONLNdõ˚ß)fiake .°dONLNd®ä¥(±ä100 camera attached to a host râ°dONLNd=®¥>)àunning Wo °dONLNdE®>¥Ñ),indows. This strC†°dONLNdU®Ö¥ú)Guctur…İdONLNdZ®ú¥·)e is one of the fi¸Ä°dONLNdl®·¥)E elds in the .°dONLNdxµä¡“(æä CmCameraInfo°dONLNdѵ“¡‡)H strl°dONLNdേ¡ˆ)uctur>`°dONLNd絈¡ )e def‡°dONLNdíµ ¡.)ined on ‡°dONLNdöµ.¡F)"page ‡°dONLNdüµF¡Y)2-14‡°dONLNd£µY¡^). °dONLNd¶Œä⁄Í(◊ätypedef struct {°dONLNd∏‹úËÍ+unsigned char°dONLNdÀ‹ËV)ltransferRate;°dONLNd⁄ÍúˆÍ(Ûúunsigned char°dONLNdÌ͈\)lconfiguration;°dONLNd˝¯úÍ(úunsigned char°dONLNd¯8)ltimeOut;°dONLNdäfi(ä} CmInterface;
  784.  H/4 H.    .°dONLNd(ä*÷*Field descriptions
  785. ˇ·ˇ‚7^
  786. .°dONLNd;,ä8“* transferRate.°dONLNdH,8¸)x:Indicates the data transfer rate between the host and the °dONLNdÇ8D* @camera.The transfer rate in bits per second (bps) is calculated °dONLNd¬DP∫* *by multiplying 1200 by the value of this fi™@°dONLNdÌD∫P)∏eld. For example, a °dONLNdP\Ç(Yvalue of 2 indicates 2400 bps..°dONLNd _äkÿ(häconfiguration.°dONLNd._k)x@Indicates the serial communication settings. It contains 8 bits °dONLNdnkw¸* =MSB-LSB as follows: parity (2 bits), stop bits (1 bit), data °dONLNd´wÉä* "length (2 bits), unused (3 bits). °dONLNdœÜí*Parity °dONLNd◊Ü>íd)<    Stop bits°dONLNd·Üzí≠)< Data length°dONLNdÌíû/(õ    00 = None°dONLNd¯í>ûa)<    0 = 1 bit°dONLNdízû¶)< 10 = 7 bits°dONLNdû™+(ß01 = Odd°dONLNdû>™e)<
  787. 1 = 2 bits°dONLNd#ûz™)<1Û`°dONLNd$û~™•)
  788. 1 = 8 bits°dONLNd/™∂(≥1Û`°dONLNd0™∂,)1 = Evenˇ†@ˇ ˇˇˇˇ@
  789. ˇ·ˇ‚7^
  790. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  791. (‡*2-14    )BQuickT@)ake 100 Device Driver Reference4^*¿¯
  792. °dONLNd\‰hÎ(e‰A∫†°dONLNd\Îh)  value of 1÷¿°dONLNd \h')-101J °dONLNd\'h¥)1000 would indicate even parity˘¿°dONLNd.\≥hÌ)å, 1 stop bit, 8 °dONLNd>h‰t (q‰
  793. data bits.,
  794. Courier.°dONLNdIwlÉñ(ÄltimeOut.°dONLNdQw‰É◊)x5Indicates the timeout period beyond which the camera °dONLNdÜɉè* >decides that the host timed out. The actual timeout period is .°dONLNdƒè‰õ%* ten times the rR`°dONLNd”è%õu)Aeturned value (10 R`°dONLNdÂèuõz)PxR`°dONLNdÊèzõ|) R`°dONLNdÁè|õ¶)timeOutR`°dONLNdÓè¶õÍ)*) milliseconds. Ù°dONLNd˛èÈõÒ)CAg`°dONLNdˇèÒõÛ) °dONLNdõ‰ß(§‰timeOut°dONLNdõß7)*
  795.  value of °dONLNdõ7ß=))0°dONLNdõ=ß‹)% indicates no timeout. This value is °dONLNd7߉≥0(∞‰implicitly set to °dONLNdIß0≥B)L255°dONLNdLßB≥á), which is apprR`°dONLNd[ßá≥Î)Eoximately 2.5 seconds.
  796. ‚*ί4„*ͯ ‰*‰˛
  797. ˇ·ˇ‚7^ .°dONLNdr’*„~(fl* CmCameraInfoˇˇˇˇˇˇ(flÚ2
  798. .°dONLNdÄÙlÄ(˝lThe °dONLNdÑÙÄ») CmCameraInfo°dONLNdêÙ»÷)H strl°dONLNdîÙ÷Ï)uctur>`°dONLNdôÙÏ«)0e contains detailed information about the specifi>`°dONLNd Ù«‘)€ed .°dONLNdÕlå(
  799. lQuickTÄİdONLNd”åC) 'ake 100 camera and imaging parameters. .°dONLNd˚l&Ã(#ltypedef struct {°dONLNd(~4Ã+unsigned char°dONLNd (Í4>)lbatteryStatus;°dONLNd06~B“(?~unsigned short°dONLNdD6ÍBJ)lnoPicturesTaken;°dONLNdVD~P“(M~unsigned short°dONLNdjDÍPz)lnoPictureImageAvailable;°dONLNdÑR~^“([~unsigned short°dONLNdòRÍ^D)lfullImageWidth;°dONLNd©`~l“(i~unsigned short°dONLNdΩ`ÍlJ)lfullImageHeight;°dONLNdœn~z“(w~unsigned short°dONLNd„nÍzb)lthumbnailImageWidth;°dONLNd˘|~à“(Ö~unsigned short°dONLNd|Íàh)lthumbnailImageHeight;°dONLNd$ä~ñÃ(ì~CmDateAndTime°dONLNd7äÍñV)lcameraDateAndTime;°dONLNdKò~§Ã(°~unsigned char°dONLNd^òͧ&)l
  800. flashMode;°dONLNdj¶~≤“(Ø~unsigned short°dONLNd~¶Í≤8)lexposureTime;°dONLNdç¥~¿“(Ω~unsigned short°dONLNd°¥Í¿)lFNumber;°dONLNd´¬~ŒÃ(À~unsigned char°dONLNdæ¬ÍŒ2)l pictureMode;°dONLNdÖ~‹Ã(Ÿ~unsigned char°dONLNdfl–Í‹)lreserved°dONLNdÈfi~ÍÃ(Á~unsigned char°dONLNd¸fiÍÍh)lfullImageDatCompMode;°dONLNdÏ~¯Ã(ı~unsigned char°dONLNd&Ïͯn)lthumbImageDatCompMode;°dONLNd>˙~Ã(~unsigned long°dONLNdQ˙ÍJ)ltotalMemorySize;°dONLNdc~Ã(~unsigned long°dONLNdvÍD)lfreeMemorySize;°dONLNdá~"ñ(~char°dONLNdëÍ">)lownerName[32];°dONLNd°$~0Ã(-~unsigned char°dONLNd¥$Í0>)lCCDSensorType;°dONLNdƒ2~>¿(;~ CmInterface°dONLNd’2Í>∞)l!hostInterface; /* Windows only */°dONLNd¯@~LÃ(I~unsigned char°dONLNd @ÍLÜ)lcameraInformationBytes[6];°dONLNd'N~ZÃ(W~unsigned char°dONLNd:NÍZÜ)lcompDecompParamVersion[4];°dONLNdV\~hÃ(e~unsigned char°dONLNdi\Íhn)lcolorMatrixVersion[4];°dONLNdÅj~vÃ(s~unsigned char°dONLNdîjÍvn)lspareImageMemoryBlock;°dONLNd¨x~Ñ“(Å~unsigned short°dONLNd¿xÍÑb)lnoBasePicturesTaken;°dONLNd÷Ü~í“(è~unsigned short°dONLNdÍÜÍít)lnoQuarterPicturesTaken;°dONLNdî~†Ã(ù~unsigned char°dONLNdî͆,)l sleepDelay;°dONLNd"¢lÆn(´l+} CmCameraInfo, FarPointer CmCameraInfoPtr;ˇ∏@ˇ ˇˇˇˇ@
  801. ˇ·ˇ‚7^
  802. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  803. , (‡2-154^H¿
  804. ^Hl4^Hl    °dONLNd]äh÷(eäField descriptions
  805. ˇ·ˇ‚7^,
  806. Courier
  807. .°dONLNd&jävÿ*batteryStatus.°dONLNd4jv7)x Battery charÚİdONLNd@j7v∂)5ge and battery icon indicatorJ‡°dONLNd]j∂v). Five constants ar~İdONLNdpjv )Oe °dONLNdrvÇi(used to specify the curr≤ °dONLNdäviÇå)gent char °dONLNdívçÇ)$ge condition of the camera °dONLNd≠ÇéA(ãbatteries and rÈ¿°dONLNdºÇAé)?0elated condition of the battery icon in the LCD °dONLNdÏéö"(ódisplay°dONLNdÛé"ö⁄) *. The constants have the following values:.°dONLNdù©t(¶kPowerAdapter = 140°dONLNd1ùt©v)r .°dONLNd4ùÄ©¸) Adapter is connected to the °dONLNdP©ĵ¢* camera..°dONLNdX∏ƒÜ(¡kBatteryRangeFull = 95°dONLNdn∏܃à)Ñ .°dONLNdpƒÄ–÷(ÕÄBattery is fully char“¿°dONLNdÖƒ÷–˚)V    ged; the °dONLNdé–Ä‹(ŸÄ battery icon in the LCD display °dONLNdÆ‹Ä˲* is full and the adapter is not °dONLNdÕËÄÙØ*
  808. connected..°dONLNdÿ˜Ä(kBatteryIconFull = 86.°dONLNdÓÜ+} VÕ °dONLNdÔÖß)alues gró`°dONLNd˜®)#eater than or equal to 86 °dONLNd
  809. (show a battery icon in the LCD °dONLNd0'* %display that is full; the adapter is °dONLNdU'3ø* not connected..°dONLNdd6BÄ(?kBatteryIconHalf = 80.°dONLNdzBÄNá+~ VÕ °dONLNd{BÜNÛ)alues between 85 and 80 °dONLNdìNÄZ(WÄ"indicate that the battery is half °dONLNdµZÄfì* char܆°dONLNdπZìf®)ged; ˚ °dONLNdæZ®f
  810. )the battery icon in the °dONLNd÷fÄr(oÄ!LCD display is half full and the °dONLNd˜rÄ~Ó* adapter is not connected..°dONLNdÅçå(äkBatteryRangeEmpty = 75.°dONLNd)çô÷+} Battery has an insufÔ¿°dONLNd=ç÷ô‹)Wfi¸Ä°dONLNd?ç‹ô)
  811. cient charπ °dONLNdIçô)+ge °dONLNdLô•(¢"for camera operation; the battery °dONLNdn•±* !icon in the LCD display is empty °dONLNdè±Ω* !and the adapter is not connected..°dONLNd±¿äÉ(…änoPicturesTaken.°dONLNd¡¿ÃO)xNumber of pictur Ä°dONLNd—¿PÃ)N+es that have been taken since camera image °dONLNd¸Ãÿd(’memory was last clearK‡°dONLNdÃeÿt)ced. .°dONLNd€äÁ(‰änoPictureImageAvailable.°dONLNd.ÁÛO+x Number of pictur Ä°dONLNd>ÁPÛ)N-es that can be taken. This value is based on .°dONLNdkÛˇ%(¸the currR`°dONLNdsÛ%ˇ5)#ent R`°dONLNdwÛ5ˇw) pictureModeR`°dONLNdÇÛwˇ€)B setting of the camera.°dONLNdöäfi( äfullImageWidth.°dONLNd©™)x%Number of pixels in the image width. .°dONLNdœä‰(äfullImageHeight.°dONLNdfl©)x%Number of pixels in the image height..°dONLNd ä,¸()äthumbnailImageWidth.°dONLNd ,ÿ)x.Number of pixels in the thumbnail image width..°dONLNdH/ä;(8äthumbnailImageHeight.°dONLNd];G⁄+x /Number of pixels in the thumbnail image height..°dONLNdçJäV(SäcameraDateAndTime.°dONLNdüJV    )x:Date and time maintained by the camera. This value can be ˇˇ†.°dONLNdŸVbS* changed with the ˇ˛‡`°dONLNdÍVTb¥)RCmSetDateAndTimeˇˇ†`°dONLNd˙V¥b)` function. See also the °dONLNdbnP(kCmDateAndTime°dONLNdbPnv)N     data strl°dONLNd(bvnå)&uctur>`°dONLNd-bånÃ)e described on >`°dONLNd<bÃn‰)@page >`°dONLNdAb‰n˜)2-12>`°dONLNdEb˜n˙).°dONLNdGqä}¿(zä    flashMode.°dONLNdQq})xThe fl»Ä°dONLNdWq}à)ash mode of the camera. .°dONLNdp}â(Ü0°dONLNdq}â) = !†°dONLNdt}âH)
  812. Automatic fÚ °dONLNd}Gâv)5    lash mode°dONLNdââï(í1°dONLNdäâïE) = Never use fPİdONLNdòâEïZ)=lash°dONLNdùï°(û2°dONLNdûï°) = !†°dONLNd°ï°L)
  813. Always use fÚ °dONLNd≠ïK°`)9lash°dONLNd≤°≠(™The fl°dONLNd∏°≠Ö)ash mode can be modifi°dONLNdŒ°Ö≠Ω)h ed with the °dONLNd⁄°Ω≠)8CmSetFlashMode°dONLNd˰≠)T .°dONLNdÈ≠πd(∂function described on /¿°dONLNdˇ≠eπ|)cpage 
  814. †°dONLNd≠}πè)2-42^İdONLNd≠èπë).ˇB@ˇ ˇˇˇˇ@
  815. ˇ·ˇ‚7^
  816. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  817. (‡*2-16    )BQuickT@)ake 100 Device Driver Reference4^*¿¯,
  818. Courier
  819. .°dONLNd\lh¥(el exposureTime.°dONLNd\‰hB)xIndicates the exposurΩ†°dONLNd"\Bh£)^e time that would be r¿°dONLNd8\§hª)bequir+°dONLNd=\ªh)ed to take a ˇˇ∑¬.°dONLNdJh‰tˇ(q‰picturR`°dONLNdPhˇtL)e at the time of a ˇˇ'F†Ï°dONLNdchLt¶)MCmGetCameraInfoˇˇ∑¬†Ï°dONLNdrh¶t˜)Z function call. The .°dONLNdÜt‰Äó(}‰*value is the inverse of the actual exposur@‡°dONLNd∞tòÄ⁄)¥e time. That is, .°dONLNd¡Ä‰å(â‰exposurR`°dONLNd»Äå<)"e time is (1/R`°dONLNd’Ä<åÑ)6 exposureTimeR`°dONLNd·ÄÑåÆ)H
  820. ) seconds.°dONLNdÏèlõñ(òlFNumber.°dONLNdÙè‰õÎ)xA∫†°dONLNdıèÎõ‘)9 function of focal length of the lens of the camera, its .°dONLNd.õ‰ß(§‰diameter¬†°dONLNd6õßy)), and the shutter speed. ¬†°dONLNdOõyßÖ)l28¬†°dONLNdQõÖßä) , ¬†°dONLNdSõäßñ)30¬†°dONLNdUõñßõ) , ¬†°dONLNdWõõßß)35¬†°dONLNdYõßߨ) , ¬†°dONLNd[õ¨ß∏)40¬†°dONLNd]õ∏ßΩ) , ¬†°dONLNd_õΩß…)49¬†°dONLNdaõ…ߌ) , ¬†°dONLNdcõŒß⁄)63¬†°dONLNdeõ⁄ßfl) , ¬†°dONLNdgõflßÎ)90¬†°dONLNdiõÎßÌ)  °dONLNdj߉≥˜(∞‰and °dONLNdnߘ≥    )160°dONLNdqß    ≥) arR`°dONLNdtß≥Ñ) e the possible values for R`°dONLNdéßÑ≥Æ)oFNumberï°dONLNdïß≠≥∞)).°dONLNdó∂l¬Æ(øl pictureMode.°dONLNd£∂‰¬)xSpecifi‡°dONLNd™∂¬Ñ)es the image size of the picturȰdONLNd…∂Ѭ¿)Ée to be taken. .°dONLNdŸ¬‰Œ(À‰16°dONLNd€¬ŒF)  = subsequent picturR`°dONLNdÔ¬FŒí)Ves will be high-r$¿°dONLNd¬íŒæ)L
  821. esolution.°dONLNd Œ‰⁄(◊‰32°dONLNdŒ⁄F)  = subsequent picturR`°dONLNd!ŒF⁄ñ)Ves will be standar$¿°dONLNd3Œñ⁄§)Pd-r˜ °dONLNd6Œ£⁄Ë)esolution. This °dONLNdF⁄‰Êp(„‰value can be changed with the °dONLNdd⁄pÊ–)åCmSetPictureMode°dONLNdt⁄–ʯ)`
  822.  function .°dONLNd~ʉÚ(Ô‰described on °Ä°dONLNdãÊÚ6);page |`°dONLNdêÊ7ÚI)2-41–@°dONLNdîÊIÚK)..°dONLNdñılú(˛lreserved.°dONLNdüı‰)x
  823. Reserved. .°dONLNd™l‰(lfullImageDatCompMode.°dONLNdø‰`+x Method employed to compré¿°dONLNd◊`„)|ess image data in the camera. °dONLNdı‰(E(%‰Always 1 adaptive difµ†°dONLNd
  824. E(Q)aferò °dONLNdQ(‘) ential pulse code modulation °dONLNd*(‰4(1‰(ADPCM)..°dONLNd37lCÍ(@lthumbImageDatCompMode.°dONLNdIC‰O`+x Method employed to compré¿°dONLNdaC`Oƒ)|ess thumbnail images. fi¿°dONLNdwCƒOÔ)d    Always 3 °dONLNdÄO‰[Y(X‰(4 bits shifted to the right)..°dONLNdü^ljΔ(gltotalMemorySize.°dONLNdØ^‰jÍ)xTµ¿°dONLNd∞^Èjñ)(otal size of memory available for picturM °dONLNdÿ^ójÒ)Æe storage in number °dONLNdÏj‰v    (s‰    of bytes..°dONLNdˆylÖ¿(ÇlfreeMemorySize.°dONLNdy‰Öí)x%Remaining memory available for pictur°dONLNd*yìÖÌ)Øe storage in number °dONLNd>։렠  (鉠   of bytes..°dONLNdHîl†¢(ùl    ownerName.°dONLNdRˇ)xThis fi$@°dONLNdYî†g)eld contains the identifi@°dONLNdrîh†€)hcation of the owner of the °dONLNd熉¨„(©‰8camera. It is 32-bytes in length. The maximum number of °dONLNd≈¨‰∏›* 9characters in the owner name is 26, pad to 32 bytes with °dONLNd˛∏‰ƒΩ* 1space characters. The owner name is set with the .°dONLNd/ƒ‰–8* CmSetOwnerName°dONLNd=ƒ8–±)T function described on page °dONLNdYƒ±–…)ypage °dONLNd^ƒ…–‹)2-40°dONLNdbƒ‹–·). °dONLNde”lfl∫(‹lCCDSensorType.°dONLNds”‰flÍ)xT∫¿°dONLNdt”Èfl6)ype of CCD (char§¿°dONLNdÑ”6fl®)Mged couple device) sensor˚¿°dONLNdù”ßfl¨)q. .°dONLNd†fl‰ÎÍ(ˉ0°dONLNd°flÍÎ-) = Kodak M7-L°dONLNdØΉ˜Í(Ù‰1°dONLNd∞Î͘#)  = Kodak M7°dONLNdº˙l∫(lhostInterface.°dONLNd ˙‰«)x1Serial communication parameters (only valid for W†°dONLNd˚˙«)„    indows). °dONLNd‰ˇ(‰This fi$@°dONLNd ›)2eld is valid only if the underlying communication °dONLNd=‰>(‰device is the standar‚ °dONLNdR>Ó)Z)d serial interface. The parameter values .°dONLNd{‰*Ó('‰arR`°dONLNd}Ó*@)
  825. e contained in the R`°dONLNdê@*à)R transferRateR`°dONLNdúà*ç)H, R`°dONLNdûç*€)configurationR`°dONLNd´€*Û)N, and °dONLNd±*‰6(3‰timeOut°dONLNd∏*6)* fPİdONLNd∫*6J)ields in the PİdONLNd«*J6å)6 CmInterfacePİdONLNd“*å6ö)B str<İdONLNd÷*ö6∞)uctur‡°dONLNd€*∞6)e described on .°dONLNdÍ6‰B˚(?‰page Z‡°dONLNdÔ6¸B)2-13Æ¿°dONLNdÛ6B)..°dONLNdıElQ(NlcameraInformationBytes.°dONLNd Q‰]+x     Reserved..°dONLNd`ll(ilcompDecompParamVersion.°dONLNd-l‰xu+x !The version number of the set of ’†°dONLNdNlux∫)ë ADPCM compr‡°dONLNdYl∫x◊)Eession °dONLNd`x‰Ñä(ʼn#parameters employed by the camera. .°dONLNdÑálìÿ(êlcolorMatrixVersion.°dONLNdóá‰ìÜ)x$The version number of the color corru@°dONLNdªáÜìÒ)¢ection matrix employed °dONLNd“ì‰üî(ú‰(by the camera. Bytes 0 and 1 together ar{@°dONLNd˙ìîüÎ)∞e the major version °dONLNdü‰´(®‰number≥°dONLNdü´x)". Bytes 2 and 3 together arπ†°dONLNd/üx´Û)re the minor version numberX@°dONLNdIüÛ´¯){. ˇ>@ˇ ˇˇˇˇ@
  826. ˇ·ˇ‚7^
  827. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  828. , (‡2-174^H¿.°dONLNd\hx(eSee the description of the ,
  829. Courier°dONLNd\xhΔ)vCmColorMatrix°dONLNd(\ΔhÏ)N     data strl°dONLNd1\Ïh)&uctur>`°dONLNd6\h)e on .°dONLNd;ht(qpage Z‡°dONLNd@ht,)2-19Æ¿°dONLNdDh,t1). °dONLNdHwÉ≤(Ä&Since the color matrix and image comprd °dONLNdnw≤É)∞ession schemes in the °dONLNdÑÉèé(åcamera may change in the futur–°dONLNd¢Ééè)åe, it is always important to °dONLNdøèõÕ(ò.check the version number of the color matrix. pİdONLNdÌèÕõ”)ÀY1°dONLNdÓè”õ)ou must make °dONLNd˚õßÑ(§adjustments in your image pr˚¿°dONLNdõÑß)Çocessing setup, based on the °dONLNd4ß≥ (∞<version number of the color matrix in the camera as follows:°dONLNdr∂¬,*On the W~°dONLNdz∂,¬)*6indows platform, if the color matrix in the camera is °dONLNd∞¬Œ—(À0version 1, use the default color matrix in the Wˇ¿°dONLNd‡¬–Œ)Œ indows IPM °dONLNdÎŒ⁄›(◊1and pass that matrix back to the IPM for image prÎ@°dONLNdŒ›⁄)€ocessing. If °dONLNd)⁄ʵ(„,it is not version 1, pass the color matrix rñ‡°dONLNdU⁄µÊ¯)≥eturned by the °dONLNddÊÚi(Ôcamera to the IPM. See Δ °dONLNd{ÊiÚÚ)gChapter 5, “Displaying QuickTT‡°dONLNdòÊÚÚ)âake 100 °dONLNd†Ú˛g(˚Images in a Macintosh      °dONLNd∂Úh˛°)f Application”á@°dONLNd¬Ú°˛ƒ)9 for morQ¿°dONLNd Ú≈˛)$e information °dONLNdÿ˛
  830. ô( about displaying images on the W4°dONLNd¯˛ô
  831. Ë)óindows platform. °dONLNd (>On the Macintosh platform, if the color matrix is not version °dONLNdI%l* 1, get the color matrix fra†°dONLNdcl%À)jom the camera, and fi‡°dONLNdxÃ%)`ll in the color °dONLNdà%1'(.matrix fi&¿°dONLNdë%(1ë)&eld for the PICT QuickT.@°dONLNd®%ë1®)iake fi¿°dONLNdÆ%©1ƒ)le defi7‡°dONLNdµ%ƒ1)nition passsed to °dONLNd«1=3(:
  832. the QuickT›‡°dONLNd—12=d)0
  833. ake QuickTİdONLNd€1e=ü)3 ime decomprÅ¿°dONLNdÊ1ü=):essor with the camera °dONLNd¸=Iº(F,color matrix. If the version number is 1, pr †°dONLNd(=ΩI)ªocess and display °dONLNd:IU|(Rthe images with the QuickT‡Ä°dONLNdTI{U¥)y ake decomprİdONLNd_IµU):essor using the same °dONLNdtUa|(^method you use for QuickT˜°dONLNdçU{a≠)y
  834. ime PICT fi)†°dONLNdòUÆa–)3    les. See k†°dONLNd°U–a)" Chapter 5, °dONLNd¨am[(j“Displaying QuickT•†°dONLNdæaZm„)Xake 100 Images in a Macintosh °dONLNd‹my;(v Application”˛ °dONLNdËm;y^)9 for mor»†°dONLNdm_yÍ)$e information about displaying °dONLNdyÖ"(ÇQuickTÄİdONLNdy"Ö˚) .ake images on the Macintosh computer platform..°dONLNdDàäî(ëäspareImageMemoryBlock.°dONLNdZî†H+x Number of sparª`°dONLNdhîH†»)Fe image blocks still available..°dONLNdà£äظ(¨änoBasePicturesTaken.°dONLNdú£ØP)xNumber of high-rÍ`°dONLNd¨£PØ˚)N&esolution images that have been taken..°dONLNd”≤äæ(ªänoQuarterPicturesTaken.°dONLNdÍæ V+x Number of standarË¿°dONLNd˚æV c)Td-r`°dONLNd˛æd )&esolution images that have been taken..°dONLNd%ÕäŸΔ(÷ä
  835. sleepDelay.°dONLNd0ÕŸé)x Sleep delay time of the camera. +†°dONLNdPÕéŸï)åAf@°dONLNdQÕïŸ) numeric value in the range .°dONLNdmŸÂ(‚0°dONLNdnŸÂ) thrR`°dONLNdrŸÂ1)ough R`°dONLNdwŸ1Â7)5R`°dONLNdxŸ7Â<): °dONLNd{ËÙ(Ò0°dONLNd|ËÙD)  = Immediate°dONLNdâ˜(1°dONLNdä˜<)  = 5 minutes°dONLNdó(2°dONLNdòA) = 15 minutes°dONLNd¶!(3°dONLNdß!A) = 30 minutes°dONLNdµ$0(-4°dONLNd∂$0A) = 60 minutes°dONLNdƒ3?(<5°dONLNd≈3?I) = Never sleep.°dONLNd‘XHao(_HSEE ALSO
  836. .°dONLNd›fär‰+BCmGetCameraInfo°dONLNdÏf‰rÚ)Z on °dONLNdfÚr
  837. )page °dONLNdıf
  838. r)2-28°dONLNd˘fr"), °dONLNd˚f"rv)CmSetOwnerName°dONLNd    fvrÑ)T on °dONLNdfÑrú)page °dONLNdfúrØ)2-40°dONLNdfØr¥), °dONLNdsäÍ(|äCmSetPictureMode°dONLNd(sͯ)` on °dONLNd,s¯)page °dONLNd1s#)2-41°dONLNd5s#(), °dONLNd7s(|)CmSetFlashMode°dONLNdEs|ä)T on °dONLNdIsä¢)page °dONLNdNs¢µ)2-42°dONLNdRsµ∫), °dONLNdTÄäåÍ(âäCmSetDateAndTime°dONLNddÄÍå¯)` on °dONLNdhįå)page °dONLNdmÄå#)2-39°dONLNdqÄ#å(), °dONLNdsÄ(å¨)IpGetCameraColorMatrix°dONLNdâĨå∫)Ñ on °dONLNdçÄ∫å“)page °dONLNdíÄ“åÂ)4-16°dONLNdñÄÂåÍ), °dONLNdòçäô(ñäIpSetCameraColorMatrix°dONLNdÆçô)Ñ on °dONLNd≤çô4)page °dONLNd∑ç4ôG)4-17°dONLNdªçGôL), °dONLNdΩçLô÷)IpInitCameraColorMatrix°dONLNd‘ç÷ô‰)ä on °dONLNdÿöä¶¢(£äpage °dONLNd›ö¢¶µ)4-17°dONLNd·öµ¶∫), °dONLNd„ö∫¶>)IpCalculateColorTables°dONLNd˘ö>¶L)Ñ on °dONLNd˝öL¶d)page °dONLNdöd¶r)4-9°dONLNdör¶t) ˇ†@ˇ ˇˇˇˇ@
  839. ˇ·ˇ‚7^
  840. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  841. (‡*2-18    )BQuickT@)ake 100 Device Driver Reference4^*¿¯
  842. j*r¯4j*r¯ l*l˛
  843. ˇ·ˇ‚7^ °dONLNd\*j{(f*CmPictureInfoˇˇˇˇˇˇ(fÚ2
  844. .°dONLNd{láÄ(ÑlThe ,
  845. Courier°dONLNd{ÄáŒ)CmPictureInfo°dONLNd {Œá‹)N strl°dONLNd${‹áÚ)uctur>`°dONLNd){Úá)e pr¿°dONLNd-{áá)ovides details about a specifi¿°dONLNdK{áá√)Ñed image stor„ °dONLNdX{¬áÏ);
  846. ed in the .°dONLNdbàlîı(ëlinternal memory of the QuickT@°dONLNdàıîh)âake 100 camera. Images arh¿°dONLNdòàhîã)se specifi Ä°dONLNd°àåî¡)$ ed by picturÖ‡°dONLNd≠à¡îÌ)5    e number .°dONLNd∂ïl°â(ûlin the °dONLNdΩïâ°ø)    pictureNo°dONLNdΔïø°)6 parameter of the °dONLNdÿï°p)QCmGetPictureInfo°dONLNdËïp°õ)`  function. °dONLNdÙÆl∫“(∑ltypedef struct  {°dONLNdº~»“+unsigned short°dONLNdºÍ»&)l
  847. pictureNo;°dONLNd' ~÷Ã(”~unsigned long°dONLNd: Í÷>)limageDataSize;°dONLNdJÿ~‰“(·~unsigned short°dONLNd^ÿ͉)lwidth;°dONLNdfÊ~Ú“(Ô~unsigned short°dONLNdzÊÍÚ)lheight;°dONLNdÉÙ~Ã(˝~CmDateAndTime°dONLNdñÙÍ2)l dateAndTime;°dONLNd§~Ã( ~unsigned char°dONLNd∑Í&)l
  848. flashMode;°dONLNd√~“(~unsigned short°dONLNd◊Í8)lexposureTime;°dONLNdÊ~*“('~unsigned short°dONLNd˙Í*)lFNumber;°dONLNd,~8Ã(5~unsigned char°dONLNd,Í82)l pictureMode;°dONLNd%:~FÃ(C~unsigned char°dONLNd8:ÍFb)ldataCompressionMode;°dONLNdNH~TÃ(Q~unsigned char°dONLNdaHÍT>)ldefectiveFlag;°dONLNdpVlb>(_l#} CmPictureInfo, *CmPictureInfoPtr;
  849. p*¯4p*~¯    .°dONLNdîolz∏*Field descriptions
  850. ˇ·ˇ‚7^
  851. .°dONLNdß|là¢*    pictureNo.°dONLNd±|‰à)x
  852. The pictur%°dONLNdª|à<).e number°†°dONLNd√|;à€))%. This value is the second parameter .°dONLNdËà‰î"(ë‰passed to the °dONLNdˆà"îÇ)>CmGetPictureInfo°dONLNdàÇî◊)` function, which is .°dONLNd(ù‰described on °Ä°dONLNd'î†6);page |`°dONLNd,î7†I)2-29–@°dONLNd0îI†N). .°dONLNd3£lØ∫(¨limageDataSize.°dONLNdA£‰Øä)x&Size of the image in number of bytes. .°dONLNdh≤læä(ªlwidth.°dONLNdn≤‰æÓ)xWÛ`°dONLNdo≤Ìæï)    'idth of the image in number of pixels. .°dONLNdó¡lÕê( lheight.°dONLNdû¡‰Õô)x)Height of the image in number of pixels. .°dONLNd»–l‹Æ(Ÿl dateAndTime.°dONLNd‘–‰‹ó)x'Date and time that the image was captur‹@°dONLNd˚–ó‹¶)≥ed. .°dONLNdfll΢(Ël    flashMode.°dONLNd
  853. fl‰ÎÎ)xA∫†°dONLNd flÎÎí)& value indicating whether or not the fl‡°dONLNd2flíΜ)ßash was used:.°dONLNd@Ή˜Í(Ù‰0°dONLNdAÎ͘5) = Flash not used°dONLNdS˜‰Í(‰1°dONLNdT˜Í9) = Flash was used°dONLNdfl¥(l exposureTime.°dONLNds‰B)xIndicates the exposurΩ†°dONLNdàBã)^e time that was r˛¿°dONLNdôã¢)Iequir°dONLNdû£·)ed to take the .°dONLNd≠‰(‰specifi°dONLNd¥*)    ed picturR`°dONLNdΩ*<)(e. Vg`°dONLNd¡;[)alue is g`°dONLNd…[i) (1/g`°dONLNdÃi±) exposureTimeg`°dONLNdÿ±›)H ) seconds. °dONLNd‰!l-ñ(*lFNumber.°dONLNdÏ!‰-Ù)x@The focal length of the lens of the camera, the diameter of the °dONLNd,-‰9_* lens, and the shutter speed. .°dONLNdJ<lHÆ(El pictureMode.°dONLNdV<‰H1)xSize of the image:.°dONLNdiH‰T* 16°dONLNdkHT)      = High-rR`°dONLNdtHTd)+esolution image °dONLNdÖT‰`(]‰32°dONLNdáT`)
  854.  = StandarR`°dONLNdëT`-)/d-r$¿°dONLNdîT-`v)esolution image °dONLNd•clofi(lldataCompressionMode.°dONLNdπc‰o)x
  855. Data comprÄİdONLNd√coZ)4ession method:.°dONLNd“o‰{Í(x‰1°dONLNd”oÍ{Ù) = !†°dONLNd÷oÙ{o)
  856. ADPCM high- and standarÙ°dONLNdÌon{|)zd-rΔ`°dONLNdo|{«)esolution images°dONLNd{‰áÍ(щ3°dONLNd{Íá…)3 = Bit shift (4 bits to the right) thumbnail images°dONLNd6älñ∫(ìldefectiveFlag.°dONLNdDä‰ñÇ)x%Indicates a defect in the image data:.°dONLNdjñ‰¢Í* 1°dONLNdkñÍ¢$) = One or morR`°dONLNdxñ$¢}):e bad blocks of data°dONLNd碉ÆÍ(´‰0°dONLNdé¢ÍÆ=) = Image is not corrl°dONLNd¢¢=ÆW)Suptedˇñ@ˇ ˇˇˇˇ@
  857. ˇ·ˇ‚7^
  858. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  859. , (‡2-194^H¿°dONLNd\Heo(cHSEE ALSO,
  860. Courier
  861. .°dONLNd    jävÍ+BCmGetPictureInfo°dONLNdjÍv¯)` on °dONLNdj¯v)page °dONLNd"jv#)2-29°dONLNd&j#v%) 
  862. ¶HØ4ßHÆ ®H®
  863. ˇ·ˇ‚7^ .°dONLNd(ôHßû(£HCmColorMatrixˇˇˇˇˇˇ(£2
  864. .°dONLNd7∏äƒû(¡äThe °dONLNd;∏ûƒÏ)CmColorMatrix°dONLNdH∏σ)N     data strl°dONLNdQ∏ƒ()&uctur>`°dONLNdV∏(ƒC)e is pr¿°dONLNd]∏Cƒ‰)$ovided for interface to the Image Pr„ °dONLNdÅ∏„ƒ    )†    ocessing .°dONLNdä≈ä—Ÿ(ŒäJModule to facilitate decoding of the image format employed by the camera. .°dONLNd’fiäÍÍ*typedef struct {°dONLNdÁÏú¯t+$unsigned char colorMatrixVersion[4];°dONLNd˙úb*!double colorCorrectionMatrix[12];°dONLNd/äb(ä$} CmColorMatrix,  *CmColorMatrixPtr;
  865. "H14"H0    .°dONLNdT!ä,÷*Field descriptions
  866. ˇ·ˇ‚7^
  867. .°dONLNdg.ä:ˆ*colorMatrixVersion.°dONLNdz.:    )xVú`°dONLNd{.:ë)ersion number of the color corr؆°dONLNdö.ë:—)âection matrix r: °dONLNd©.“:)Aeturned in the .°dONLNd∏:FÄ(CcolorCorrectionMatrix°dONLNdÕ:ÄF≤)~
  868.  parameter¬†°dONLNd◊:±F)1. This is the same °dONLNdÍFRC(Ovalue that is rR`°dONLNd˘FCRÑ)Aeturned in the R`°dONLNdFÑR)AcolorMatrixVersionR`°dONLNdFR˘)l fiR`°dONLNdF˘R)    eld of °dONLNd$R^([the °dONLNd(R^\) CmCameraInfo°dONLNd4R\^Ç)H     data strl°dONLNd=RÇ^ò)&uctur>`°dONLNdBRò^¢)e. °dONLNdFaäm(jäcolorCorrectionMatrix.°dONLNd\my?+x The color corr`°dONLNdjm@y)>*ection matrix. See the description of the .°dONLNdîyÖ\(ÇCharacteristics°dONLNd£y\Öj)Z strl°dONLNdßyjÖÄ)uctur>`°dONLNd¨yÄÖì)e on >`°dONLNd±yìÖ´)page >`°dONLNd∂y´Öπ)4-6>`°dONLNdπyπÖæ). .°dONLNdºüH®o(¶HSEE ALSO
  869. .°dONLNd≈¨ä∏&+BCmGetColorCorrectionMatrix°dONLNdfl¨&∏4)ú on °dONLNd„¨4∏L)page °dONLNd˨L∏_)2-46°dONLNdϨ_∏a) 
  870. ÂHÌ4ÂHÏ ÁHÁ
  871. ˇ·ˇ‚7^.°dONLNdÓ’HÂv(·HQuickTMİdONLNdÙ’uÂ=)-ake 100 Device Driver Functionsˇˇˇˇˇˇ(·2
  872. °dONLNdÒä˝—(˙äThis section defir °dONLNd&Ò“˝ß)H0nes all of the functions supported by the QuickTŸ¿°dONLNdVÒ¶˝)‘ake 100 device driver¸@°dONLNdkÒ˝)]. °dONLNdm˛ä
  873. æ(ä
  874. The QuickTº@°dONLNdw˛Ω
  875. S)3"ake 100 device driver functions prÆÄ°dONLNdô˛S
  876. º)ñovide Macintosh and Wfi°dONLNdÆ˛º
  877. )iindows application °dONLNd¡ ä(ä developers with a means to contr$°dONLNd· Y)ìol the QuickT_¿°dONLNdÓ X˚);%ake 100 digital camera, gather image °dONLNdä$»(!äinformation fr‘@°dONLNd!»$V)>om the camera, and set any user°dONLNd@V$j)é-defi+°dONLNdEk$Î)nable parameters via softwarw`°dONLNdaÎ$˙)Äe. Tv¿°dONLNde˙$)o use °dONLNdk%ä1U(.ä,the functions, you must include the CmDriverìİdONLNdó%U1e)À.h fiq†°dONLNdú%f1Û)"le in the include section of your °dONLNdæ2ä>0(;ä$Macintosh application code or the QTl@°dONLNd‚20>c)¶    AKE-D.H fi†°dONLNdÏ2d>á)4le for W‚°dONLNdÙ2Ü>˜)"indows application code. °dONLNdDäP—(MäThe functions arL°dONLNdD“P)He divided into grÔ@°dONLNd/DP3)Ioups:,Zapf Dingbats°dONLNd5Zäaè(`än
  878. °dONLNd7Wñc
  879. ) XDriver initialization functions. The functions in this category allocate and deallocate °dONLNdècño∑* data strº °dONLNdóc∑oŒ)!ucturB°dONLNdúcœoJ)es used by the device driver0°dONLNd∏cJoO){. °dONLNdªxäè(~än
  880. °dONLNdΩuñÅ™) >Camera connection functions. The functions in this category ar˰dONLNd˚u™Å¯(~™e used to set up a °dONLNdÅñç    (äñconnection with a camera.°dONLNd(ñäùè(úän
  881. °dONLNd*ìñü“) Camera contre¿°dONLNd6ì“üq)<&ol functions. The functions in this gr‹‡°dONLNd\ìqüç)üoup ar††°dONLNdbìéüº) e used to rꆰdONLNdmìºü˜).etrieve or set °dONLNd|üñ´7(®ñ%various characteristics of the QuickT†°dONLNd°ü7´)°-ake 100 camera (for example, the owner name).ˇ∂@ˇ ˇˇˇˇ@
  882. ˇ·ˇ‚7^
  883. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  884. (‡*2-20    )BQuickT@)ake 100 Device Driver Reference4^*¿¯,Zapf Dingbats°dONLNd_lfq(eln
  885. °dONLNd\xhô) Image rP@°dONLNd    \öhÌ)"etrieval and captur˝Ä°dONLNd\Ìhâ)S%e functions. The functions in this gr‡`°dONLNdA\âh•)úoup ar§ °dONLNdG\¶h‘) e used to rî °dONLNdR\‘hÙ).etrieve °dONLNdZhxt°(qx    images frk°dONLNdch°t'))om the camera and take pictur‡°dONLNdÄh(t6)áes. 
  886. Å*è¯4Ç*诠   °dONLNdÖÄlã(àlNote
  887. ˇ·ˇ‚7^
  888. °dONLNdäçlô≥*The numeric err~`°dONLNdôç≥ô‰)G or codes prµ¿°dONLNd§ç‰ô†)1+ovided in the Result Codes section of each °dONLNdœôl•–(¢lfunction description ar4†°dONLNdÊô—•ï)e-e applicable to only Macintosh applications. °dONLNd•l±Ñ(ÆlWher‡°dONLNd•ѱó)e err™‡°dONLNd•ò±4)!ors apply to both Macintosh and WZİdONLNd=•4±x)úindows softwar@°dONLNdK•y±ì)Ee, the °dONLNdR±lΩÀ(∫lsymbolic constants ar™Ä°dONLNdg±ÀΩ÷)_e rπ °dONLNdj±÷Ω) eturned to W†‡°dONLNdv±Ωk):indows applications.s¿°dONLNdã¥qºw)au
  889. ¡¿°dONLNdå±wΩy) 
  890. ‡*˯4·*˯ „*„˛
  891. ˇ·ˇ‚7^ °dONLNdé”*·Â(›*#Initializing and Closing the QuickT©@°dONLNd±”‰·X)∫ake 100 Device Driverˇˇˇˇˇˇ(›Ú2
  892. .°dONLNd»ËlÙ˝(Òl!The functions in this category arR`°dONLNdÈË˝Ù)ëe ,
  893. CourierR`°dONLNdÎËÙL) CmOpenDriverR`°dONLNd˜ËLÙ_)H andR`°dONLNd˚Ë_Ùa) R`°dONLNd¸ËaÙØ)CmCloseDriverï°dONLNd    ËÆÙ–)M. These .°dONLNdılB(˛l2functions allocate and deallocate private data strn@°dONLNdCıBY)÷ucturÙ °dONLNdHıYh)es r?¿°dONLNdLıiÄ)equirW°dONLNdQıÄÃ)ed by the QuickT±°dONLNdaıÀÓ)Kake 100 °dONLNdilá( ldriver‡°dONLNdoáå). 
  894. >*G¯4?*F¯ @*@˛
  895. ˇ·ˇ‚7^ °dONLNdr1*?(;* CmOpenDriverˇˇˇˇˇˇ(;Ú2
  896. .°dONLNdÄPl\§(Yl4pascal OSErr CmOpenDriver(CameraDataPtr cameraData);°dONLNdµhlt®*
  897. cameraData.°dONLNd¿hÆte)B+Pointer to the private data allocated and rJ†°dONLNdÎhft )∏eturned by the QuickT{¿°dONLNdh…tÏ)cake 100 °dONLNdtÆÄË(}Ædevice driverI¿°dONLNdtËÄœ):5. This pointer must be passed to all the other QuickT Ä°dONLNdJtŒÄÒ)Êake 100 °dONLNdRÄÆå(âÆdriver functions as the fiK†°dONLNdlÄåU)lrst parameter@°dONLNdyÄUåZ);. °dONLNd}êÆú…(ôÆFor Wj†°dONLNdÇê…ú)indows: the addr£Ä°dONLNdíêúœ)K+ess of a memory location that contains the °dONLNdΩúÆ®Ú(•Æapplication ID. .°dONLNdœ¨Æ∏¿*See °dONLNd”¨¿∏) “CameraData”°dONLNdfl¨∏)F on °dONLNd„¨∏,)page °dONLNd˨,∏:)2-8°dONLNdΨ:∏\) for morR`°dONLNdÛ¨\∏∂)"e information about R`°dONLNd¨∂∏Ú)Z
  898. cameraDataR`°dONLNd¨Ú∏ı)<..°dONLNd“*€c(Ÿ* DESCRIPTION
  899. .°dONLNd‡lÏÄ+BThe °dONLNd#‡ÄÏ») CmOpenDriver°dONLNd/‡»ÏÙ)HE function initializes the driver by allocating and then initializing .°dONLNdtÌl˘≠(ˆlcertain data strd¿°dONLNdÑÌÆ˘≈)Buctur͆°dONLNdâÌ≈˘∑)8es that the driver uses upon subsequent function calls. 
  900. *¯4*¯    °dONLNd¬l(lNote
  901. ˇ·ˇ‚7^
  902. °dONLNd«l£*GDuring initialization on the Macintosh platform, application globals ark†°dONLNd£™(£e .°dONLNdl+¬((lsaved via a call to °dONLNd$¬+
  903. )V SetCurrentA5°dONLNd0
  904. +)H. R`°dONLNd2+)Yg`°dONLNd3+6)ou can r9¿°dONLNd;6+ß)!etrieve your application .°dONLNdT+l7¯(4l!globals by subtracting 4 bytes fr%†°dONLNdu+˘7∞)ç)om the parameter block pointed to in the °dONLNdû7lC(@lA0 rå@°dONLNd¢7Cú)egisterK†°dONLNd©7úCÇ)7. This is especially important for subsequent calls to °dONLNd‡ClO±(Llapplication-defi|‡°dONLNdC≤O˝)Fned completion rÿ °dONLNdC˝Oc)Koutines during asynchrZ°dONLNdCdOÅ)gonous °dONLNdOl[√(Xloperations. For morË@°dONLNd/O√[¢)W3e information about accessing application globals, °dONLNdb[lgP(dl1see the chapter “Memory Management Utilities” in ¯¿°dONLNdì[Pgö)‰Inside Macintosh: °dONLNd•glsé(plMemory”@°dONLNd´gçs?)!(. For information about the completion rŒ`°dONLNd”g?sè)≤outine for asynchrp‡°dONLNdÂgês≠)Qonous .°dONLNdÎslª(|lfunctions, see the °dONLNd˛sªK)OCmAsyncCompletionRoutine°dONLNdsK†)ê function described .°dONLNd*lãy(àlon F‡°dONLNd-zãë)page !¿°dONLNd2íã§)2-33u†°dONLNd6§ã¶).ı†°dONLNd8Ç´ä±)u
  905. C†°dONLNd9≤ã¥) 
  906. ô*߯4ô*¶¯°dONLNd;ôl°ã(ülIMPORTİdONLNdAôã°õ)ANT
  907. ˇ·ˇ‚7^
  908. .°dONLNdE§l∞ë(≠lCalling °dONLNdM§ë∞Ÿ)% CmOpenDriver°dONLNdY§Ÿ∞≠)H2 after the driver is open without a prior call to °dONLNdã∞lº∫(πlCmCloseDriver°dONLNdò∞∫º÷)N will rR`°dONLNdü∞÷º)esult in an err$¿°dONLNdÆ∞º)=org`°dONLNd∞∞º)..g`°dONLNd≤≥#ª*)s
  909. .ä`°dONLNd≥∞*º,) ˇ@ˇ ˇˇˇˇ@
  910. ˇ·ˇ‚7^
  911. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  912. , (‡2-214^H¿°dONLNd\Heb(cHRESULëİdONLNd\beÜ)T CODES
  913. .°dONLNdkäwû+(The ,
  914. Courier°dONLNdkûwÊ) CmOpenDriver°dONLNdkÊw)H  function rR`°dONLNd(kw/),eturns R`°dONLNd/k/wM)noErrR`°dONLNd4kMw¢) on success. If an err$¿°dONLNdJk¢w⁄)Uor occurs, it r˜ °dONLNdYkŸw)7 eturns one .°dONLNddxäÑÓ(Åäof the values listed herX†°dONLNd|xÓÑı)de:.°dONLNdÖäë¸(éäkCmAlreadyOpenError., °dONLNdìÖ3ëJ)©-6202°dONLNdôÖbëñ)/
  915. The QuickTº@°dONLNd£ÖïëÎ)3ake 100 driver is alrA°dONLNd∏ÖÏë)Weady °dONLNdΩêbú}(ôbopen. .°dONLNdƒõäßfi(§äkCmBadArgError., °dONLNd”õ3ßJ)©-6204°dONLNdŸõbßÒ)/ Parameter is or contains an addr‰ °dONLNd˘õÒß )èess of °dONLNd¶b≤…(Øban invalid data item. W∑¿°dONLNd¶…≤)gindows platform °dONLNd'±bΩu(∫bonly"†°dONLNd+±uΩw)..°dONLNd-ºä»(≈äkCmDriverNotLoadedError., °dONLNdEº3»J)©-6213°dONLNdKºb»˘)/!The camera device driver was not °dONLNdl«b”˘* "loaded at startup time. Macintosh °dONLNdé“bfiû* platform only_İdONLNdõ“ûfi†)<..°dONLNdù›äÈÍ(ÊäkCmNoMemoryError., °dONLNdÆ›3ÈJ)©-6209°dONLNd¥›bÈÙ)/ System failed to allocate memory=`°dONLNd‘›ÙÈ˘)í. .°dONLNd◊ËäÙfi(ÒäkCmSystemError.°dONLNdÁËbÙl)ÿWÛ`°dONLNdËËkÙ¢)    
  916. indows DLLË¿°dONLNdÚË¢ÙÎ)7 failed to either rÒ†°dONLNdËÎÙ
  917. )Iegister °dONLNdÛbˇ•(¸bits class or to cr†°dONLNdÛ¶ˇÊ)Deate a windowÛ@°dONLNd,Û¡Í)?. .°dONLNd/˛ä
  918. ¸(äkSoftwareInstallErr., °dONLNdC˛3
  919. J)©-7945°dONLNdI˛b
  920. Δ)/Macintosh GeoPort err˚ °dONLNd^˛Δ
  921. ˚)d or: The Sharu °dONLNdj˛¸
  922.     )6ed °dONLNdm    b(b"Library Manager or GeoPort system °dONLNdèb õ* extensions ar=‡°dONLNdúú »):
  923. e missing..°dONLNdßä+Δ((ä
  924. memFullErr., °dONLNd≤8+J)Æ-108°dONLNd∑b+¿)*Macintosh system errO‡°dONLNdÀ¡+)_or: Not enough °dONLNd⁄*b6ù(3b memory for ri‡°dONLNdÊ*ù6ˆ);equested operation. ˇˇ’ö.°dONLNd˚:äF·(CäFor the Macintosh, ˇˇÄŒŒ°dONLNd:‚FT)XkCmAlreadyOpenErrorˇˇ’öŒ°dONLNd!:TFx)r
  925.  is also rS¸°dONLNd+:xF)$#eturned if another application has .°dONLNdNGäSï(Päalr-`°dONLNdQGñS) eady opened the QuickT˜¿°dONLNdgGS?)kake 100 driverÏ`°dONLNduG?SD)>. °dONLNdxmHvo(tHSEE ALSO
  926. .°dONLNdÅ{äáÿ+BCmCloseDriver¬†°dONLNdé{◊á)M, described next 
  927. ∑H¿4∏Hø πHπ
  928. ˇ·ˇ‚7^ .°dONLNd†™H∏ù(¥HCmCloseDriverˇˇˇˇˇˇ(¥2
  929. .°dONLNdØ…ä’∂(“ä2pascal OSErr CmCloseDriver(CameraData cameraData);°dONLNd‚·äÌΔ*
  930. cameraData°dONLNdÌ·ÃÌ))BThe private data strl°dONLNd·)Ì?)]uctur>`°dONLNd·?ÌJ)e r¿°dONLNd    ·JÌ{) eturned by ¿°dONLNd·{Ì√)1 CmOpenDriver¿°dONLNd ·√̈)H  when your .°dONLNd+ÌÃ˘N(ˆÃapplication opens the QuickT‰`°dONLNdGÌM˘™)Åake 100 device driver‡°dONLNd\Ì´˘∞)^. °dONLNd_HÅ(H DESCRIPTION
  931. °dONLNdk ä,Œ+BThis function fr憰dONLNd{ Œ,)Dees the internal strº`°dONLNdè ,6)QucturB@°dONLNdî 7,s)es implicitly r؆°dONLNd£ s,É)<efer[¿°dONLNdß Ñ,Í)enced by the functions..°dONLNdø-ä9ë(6äYï°dONLNd¿-ê9)our application should call ï°dONLNd‹-9[)}CmCloseDriverï°dONLNdÈ-[9î)N  once when fiï°dONLNdˆ-î9)9nished with the QuickT™°dONLNd -9)lake .°dONLNd:äF`(Cä2100 device driver and after it has disconnected frD°dONLNdB:aF)◊%om any camera with which it has been °dONLNdgGäSº(Pä interacting.
  932. bHp4bHo°dONLNdtbäj©*IMPORTİdONLNdzb©jπ)ANT
  933. ˇ·ˇ‚7^
  934. .°dONLNd~mäyØ(väCalling °dONLNdÜmØy˝)%CmCloseDriver°dONLNdìm˝y8)N without a prR`°dONLNd†m8yv);evious call to R`°dONLNdØmvyæ)> CmOpenDriverR`°dONLNdªmæy¿)H °dONLNdºyäÖ§(Çäwill rR`°dONLNd¬y§Öœ) esult in a R`°dONLNdÕyœÖ))+kCmNotOpenErrorR`°dONLNd‹y)Ö8)Z err$¿°dONLNd‡y8ÖA)org`°dONLNd‚y@ÖE).     °dONLNd‰yEÖM)A|`°dONLNdÂyLÖm)     call to |`°dONLNdÓymÖª)!CmCloseDriver|`°dONLNd˚yªÖΩ)N °dONLNd¸Öäë(éämade prior to a call to °dONLNdÖë8)f CmDisconnect°dONLNd Ö8ë∫)H will not close the connection °dONLNd?ëäùÚ(öäwith the camera. Call °dONLNdUëÚù:)h CmDisconnect°dONLNdaë:ùS)H beforR`°dONLNdgëSùZ)e R`°dONLNdiëZù®)CmCloseDriverR`°dONLNdvë®ùŒ)N
  935.  to fully .°dONLNdÄùä©r(¶ä4disconnect and close an open session with a camera. ,Zapf Dingbatso@°dONLNdµ†x®)Ós
  936. í@°dONLNd∂ù©Å) ˇ¨@ˇ ˇˇˇˇ@
  937. ˇ·ˇ‚7^
  938. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  939. (‡*2-22    )BQuickT@)ake 100 Device Driver Reference4^*¿¯°dONLNd\*eD(c*RESULëİdONLNd\Deh)T CODES
  940. .°dONLNdjlvÄ+(The ,
  941. Courier°dONLNdjÄvŒ)CmCloseDriver°dONLNdjŒv˙)N  function rR`°dONLNd)j˙v),eturns R`°dONLNd0jv5)noErrR`°dONLNd5j5vŒ)# upon successful completion. On err$¿°dONLNdXjŒv◊)ôorg`°dONLNdZj÷vÌ), the .°dONLNd`wlÉä(Älvalue r$`°dONLNdgwãÉr)5eturned by this function can be one of the following:.°dONLNdùÑlêÆ(çl kCmAIPError., °dONLNd©Ñê,)©-6201°dONLNdØÑDêv)/
  942. An asynchr<¿°dONLNdπÑwê◊)3onous operation is alr5İdONLNdœÑ◊êÓ)`eady °dONLNd‘èDõY(òDin prć°dONLNdŸèYõg)ogrJİdONLNd‹èhõË)ess. Macintosh platform onlyS °dONLNd¯èÁõÈ)..°dONLNd˙öl¶¿(£lkCmBadArgError., °dONLNd    ö¶,)©-6203°dONLNdöD¶”)/ Parameter is or contains an addr‰ °dONLNd/ö”¶Ó)èess of °dONLNd6•D±ü(ÆDan invalid data item..°dONLNdL∞lº(πlkCmCurrentlyConnectedError., °dONLNdg∞º,)©-6205°dONLNdm∞DºÌ)/%The camera is connected and needs to .°dONLNdíªD«§* be disconnected with °dONLNdߪ§«Ï)` CmDisconnect°dONLNd≥ªÏ«Ó)H °dONLNd¥ΔD“[(œDbeforR`°dONLNdπΔ[“Ñ)
  943. e calling R`°dONLNd√ΔÑ““))CmCloseDriverï°dONLNd–Δ—“‘)M.°dONLNd“—l›Δ(⁄lkCmNotOpenError.∏¿°dONLNd‚—›')©-621°dONLNdÊ—'›,)1°dONLNdË—D›x)
  944. The QuickTº@°dONLNdÚ—w›Ú)3ake 100 driver has not been °dONLNd‹DËs(ÂD initialized.°dONLNd*    Q(*SEE ALSO
  945. .°dONLNd$l¥+B CmOpenDriver°dONLNd0¥¬)H on °dONLNd4¬⁄)page °dONLNd9⁄Ì)2-20°dONLNd=ÌÔ) 
  946. >*F¯4?*F¯ A*A˛
  947. ˇ·ˇ‚7^ .°dONLNd?1*?v(;* Connecting W¸Ä°dONLNdK1u?√)Kith the Cameraˇˇˇˇˇˇ(;Ú2
  948. .°dONLNd[FlR™(OlThe functions °dONLNdiF™R¯)>CmGetPortInfo°dONLNdvF¯R˝)N, °dONLNdxF˝Rc)CmDisposePortInfo°dONLNdâFcRh)f, °dONLNdãFhRû)    CmConnect°dONLNdîFûR∂)6, and °dONLNdöSl_¥(\l CmDisconnect°dONLNd¶S¥_¿)H arR`°dONLNd©S¿_Ë) Ce used to identify and connect to a camera so that the camera contr$¿°dONLNdÏSË_Û(\Ëol .°dONLNdÔ`llU(il7functions described later in this chapter can be used. 
  949. ú*•¯4ù*§¯ û*û˛
  950. ˇ·ˇ‚7^ °dONLNd'è*ù(ô*CmGetPortInfoˇˇˇˇˇˇ(ôÚ2
  951. .°dONLNd6Æl∫í(∑l1pascal OSErr CmGetPortInfo(CameraData cameraData,°dONLNdoºÍ»b+~unsigned long index,°dONLNdã Í÷»*%CmPortInfoHandlePtr portInfoHandle); °dONLNd±‚lÓ®(Îl
  952. cameraData°dONLNdº‚ÆÓ )BThe private data strl°dONLNd–‚ Ó!)]uctur>`°dONLNd’‚!Ó,)e r¿°dONLNdÿ‚,Ó]) eturned by ¿°dONLNd„‚]Ó•)1 CmOpenDriver¿°dONLNdÔ‚•Óÿ)H  when your .°dONLNd˙ÓÆ˙0(˜Æapplication opens the QuickT‰`°dONLNdÓ/˙å)Åake 100 device driver‡°dONLNd+Óç˙í)^. .°dONLNd.˛l
  953. ä(lindex.°dONLNd4˛Æ
  954. 1)BIndex number of a serial port:°dONLNdS
  955. Æ·* Macintosh: °dONLNd`
  956. È0);1 = Modem port°dONLNdqÈ",* 2 = Printer port°dONLNdÇ"Æ.∏(+ÆWÛ`°dONLNdÉ"∑.⁄)    indows:°dONLNdå"È.˝)21 thrÿ¿°dONLNdë"˝.b)ough 9 for Comm 1 thrˇ °dONLNd¶"b.™)eough Comm 9, r’¿°dONLNd¥"™.€)H espectively.°dONLNd¿2l>¿(;lportInfoHandle°dONLNdœ>ÆJΔ+B AddrR`°dONLNd”>ΔJ±)4ess of a memory location into which the handle of a R`°dONLNd>±JÌ)Î
  957. CmPortInfoR`°dONLNd>ÌJÔ)< .°dONLNdJÆVœ(SÆdata strº °dONLNdJœVÊ)!ucturB°dONLNdJÁV )e is to be storÙ°dONLNd.J V/)9ed. °dONLNd3p*yc(w* DESCRIPTION
  958. ˇ˛˜|.°dONLNd?}lâ∫+BCmGetPortInfoˇˇß‘°dONLNdL}∫â
  959. )N determines the prI‹°dONLNd^} â¯)Q6esence and the availability of a camera at the end of .°dONLNdîälñ(ìl"a serial port on the host computerÂ`°dONLNd∂äñ)î. ˇ!í@ˇ ˇˇˇˇ@
  960. ˇ·ˇ‚7^
  961. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  962. , (‡2-234^H¿°dONLNd\ähÃ(eäThe driver defiá °dONLNd\Ãh¨)B0nes each serial communication port with a number†°dONLNd?\¨hÛ)‡. The number is .°dONLNdOiäu(rä!supplied to this function as the ,
  963. Courier°dONLNdpiu6)éindex°dONLNdui6u™) parameter and is used by °dONLNdèi™u¯)tCmGetPortInfo°dONLNdúi¯u)N to .°dONLNd†väÇ™(äCindex into the array of serial ports available on the host computerßİdONLNd„v™ÇØ(™. .°dONLNdÊàäîU(ëä/The output of this function is a handle to the °dONLNdàUîë)À
  964. CmPortInfo°dONLNdàëî∑)<     data strl°dONLNd(à∑îÕ)&uctur>`°dONLNd-àÕî)e that contains, .°dONLNd>ïä°⁄(ûäIamong other things, information as to whether the communication port corrS@°dONLNdáï⁄° (û⁄
  965. esponding °dONLNdë¢äÆ(´äUto the given index number has a camera attached and, if it has, whether the attached °dONLNdÊØäª1*'camera is available for use by the curr√`°dONLNdØ1ªÏ)ß+ent application. For information about the .°dONLNd8ºä»Δ(≈ä
  966. CmPortInfo°dONLNdBºΔ»Ï)<     data strl°dONLNdKºÏ»)&uctur>`°dONLNdPº»)e, see >`°dONLNdWº»4)page >`°dONLNd\º4»G)2-10>`°dONLNd`ºG»J).°dONLNdbŒä⁄¢(◊äThe rR`°dONLNdgŒ¢⁄ )ecommended way to use the R`°dONLNdÅŒ ⁄n)~CmGetPortInfoR`°dONLNdéŒn⁄)N( function is to call it multiple times, °dONLNd∂€äÁõ(‰äincrR`°dONLNd∫€õÁÿ)ementing the R`°dONLNd«€ÿÁˆ)=indexR`°dONLNdÀˆÁë)$ parameter by 1 for each call until R`°dONLNd€ëÁ˝)õkCmNoSuchPortErrorR`°dONLNd€˝Á    )l is °dONLNdËäÙé(ÒärR`°dONLNdËéÙ€)eturned on the W≈¿°dONLNdË⁄Ù5)Lindows platform, or ≈¿°dONLNd+Ë5Ùq)[
  967. kNoPortErr≈¿°dONLNd5ËqÙÅ)< is rò °dONLNd:ËÅÙı)eturned on the Macintosh .°dONLNdSıäµ(˛ä
  968. platform. @°dONLNd]ı∂º),Yœ¿°dONLNd^ıªP)!our application code should be prËİdONLNdıPc)ïepary@°dONLNdÉıd )(ed to deal with a situation in which it °dONLNd´ä»( ädiscovers mor‘‡°dONLNd∏»†)>1e than one available camera during the calling pr“°dONLNdȆ )ÿocess. For example, you °dONLNdä≥(äwould prû‡°dONLNd    ≥    ))Movide a dialog box that allows the user to choose the camera with which they °dONLNdVä((%ä!would like to make a connection. .°dONLNdx.ä:fi*The handle to the °dONLNdä.fi:)T
  969. CmPortInfo°dONLNdî.:()< strl°dONLNdò.(:>)uctur>`°dONLNdù.>:I)e r¿°dONLNd†.I:Ù) (eturned by this function is supplied to °dONLNd»;äG¿(Dä    CmConnect°dONLNd—;¿GΔ)6 i°dONLNd”;ΔGfl)n the °dONLNdŸ;flG3)portInfoHandle°dONLNdÁ;3G)T- parameter when you want your application to .°dONLNdHäT+(Qä#make a connection with the camera. .°dONLNd8Zäf*The value contained in the °dONLNdSZfA){
  970. portStatus°dONLNd]ZAfJ)< fi°dONLNd`ZJfx)     eld of the °dONLNdkZxf¥).
  971. CmPortInfo°dONLNduZ¥f¬)< strl°dONLNdyZ¬fÿ)uctur>`°dONLNd~Zÿf)
  972. e must be .°dONLNdàgäsŒ(päexamined beforE°dONLNdñgœsı)ECe a connection is actually made with the camera. The values in the .°dONLNdŸtäÄΔ(}ä
  973. portStatus°dONLNd„tΔÄÃ)< fPİdONLNdÂtÃÄ')ield apply to the W√‡°dONLNd¯t&ÄÌ)Z*indows and Macintosh platforms as follows:ˇˇff°dONLNd#Üäí∏(èä
  974. The value ˇ˛32LðdONLNd-ÜπíÔ)/    kPortFreeˇˇffLðdONLNd6ÜÔí)6D indicates that a camera is attached to the port and no application .°dONLNdzìäü¶(úäis currT`°dONLNdÅì¶ü.)ently connected to the camera. ˚İdONLNd†ì.ü4)àYº°dONLNd°ì4ü)/ou can make a connection to the camera on that ˇˇ¥º.°dONLNd–†ä¨®(©äport if ˇˇ4Èx°dONLNdÿ†®¨fi)    kPortFreeˇˇ¥ºÈx°dONLNd·†fi¨Ì)6 is r%P°dONLNdʆӨD)eturned. The value ˇˇ4CѰdONLNd˘†D¨û)VkInUseByGeoPortˇˇ¥ºCѰdONLNd†û¨)Z indicates that a camera is .°dONLNd$≠äπk(∂ä5attached to the port, but another application is curr‡‡°dONLNdY≠kπÛ)·ently connected to the camera. °dONLNdyøäÀ(»ä!When you call this function and fiz`°dONLNdõø À≈)ñ&nd a camera that is available and curr0@°dONLNd¡øΔÀÔ)¶
  975. ently not .°dONLNdÀÃäÿ(’äconnected, the value in the °dONLNdÁÃÿ;){    DataSpeed°dONLNdÃ;ÿD)6 fi°dONLNdÛÃDÿr)     eld of the °dONLNd˛ÃrÿÆ).
  976. CmPortInfo°dONLNdÃÆÿº)< strl°dONLNd úÿ“)uctur>`°dONLNdÓÿ›)e r¿°dONLNdÛÿ) eturned by .°dONLNdŸäÂ(‚ä\this function is 0. This is because the actual data transfer rate is not determined until a .°dONLNd{ÊäÚ÷*successful call to °dONLNdéÊ÷Ú )L    CmConnect°dONLNdóÊ Úk)6 has been completed. !†°dONLNd¨ÊkÚ)_'After a successful connection is made, °dONLNd”Ûäˇú(¸äthe °dONLNd◊Ûúˇ“)    DataSpeed°dONLNd‡Û“ˇ€)6 fi°dONLNd„Û€ˇ    )     eld in the °dONLNdÓÛ    ˇE).
  977. CmPortInfo°dONLNd¯ÛEˇS)< strl°dONLNd¸ÛSˇi)uctur>`°dONLNd    Ûiˇfi)e is updated with the corr¿°dONLNd    Ûfiˇ)u    ect data .°dONLNd    $ä ƒ(    ätransfer rate. 
  978. H(4H(°dONLNd    4ä#©*IMPORTİdONLNd    :©#π)ANT
  979. ˇ·ˇ‚7^
  980. .°dONLNd    >&ä2À(/äThis function rR`°dONLNd    M&À2Ë)Aeturns R`°dONLNd    T&Ë2$)
  981. kNoPortErrR`°dONLNd    ^&$2¨)< on the Macintosh platform or °dONLNd    |2ä>ˆ(;äkCmNoSuchPortError°dONLNd    é2ˆ>!)l     on the WÛ`°dONLNd    ó2 >â)*indows platform if the Û`°dONLNd    Æ2â>ß)iindexÛ`°dONLNd    ≥2ß>©) .°dONLNd    ¥>äJ‡(Gäparameter is specifi§Ä°dONLNd    »>‡JH)Ved as less than 1 or is gr9†°dONLNd    ‚>IJ∏)ieater than the number of .°dONLNd    ˚JäVM(Sä+serial ports available on the host computer¬†°dONLNd
  982. &JLVm)¬    . If the ¬†°dONLNd
  983. /JmVã)!index¬†°dONLNd
  984. 4JãV…) parameter is °dONLNd
  985. BVäb®(_äspecifi°dONLNd
  986. IV®b)ed as 0 the system errR`°dONLNd
  987. _Vb)`or R`°dONLNd
  988. bVbC) paramErrR`°dONLNd
  989. jVCbk)0  (-50) is r$¿°dONLNd
  990. uVkb≠)(eturned on the °dONLNd
  991. ÑbänÚ(käMacintosh platform or °dONLNd
  992. öbÚnF)hkCmBadArgError°dONLNd
  993. ®bFnq)T     on the WÛ`°dONLNd
  994. ±bpn¿)*indows platform. .°dONLNd
  995. √sä±(|ä It is the rh†°dONLNd
  996. Œs±N)'&esponsibility of the application to frû@°dONLNd
  997. ÙsNõ)ùee the memory arº¿°dONLNd sõß)Mea ˇˇ„é.°dONLNd äã@(àä*allocated by this function by calling the ˇˇ™™∏‚°dONLNd 1@ã¶)∂CmDisposePortInfoˇˇ„é∏‚°dONLNd B¶ãÕ)f
  998.  function .°dONLNd Lãäóˆ(îäto dispose of the data str⁄ °dONLNd fãˆó)luctur`°dONLNd kãó)e. ,Zapf Dingbats)†°dONLNd oéñ$)sˇ§@ˇ ˇˇˇˇ@
  999. ˇ·ˇ‚7^
  1000. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1001. (‡*2-24    )BQuickT@)ake 100 Device Driver Reference4^*¿¯°dONLNd\*eD(c*RESULëİdONLNd\Deh)T CODES
  1002. .°dONLNdjlvÍ+(Upon successful completion, ,
  1003. Courier°dONLNd)jÍv8)~CmGetPortInfo°dONLNd6j8v>)N rR`°dONLNd8j>v[)eturns R`°dONLNd?j[vy)noErrï°dONLNdDjxv¢)
  1004. , and the °dONLNdNwlÉ¿(ÄlportInfoHandle°dONLNd\w¿ÉÂ)TB parameter supplied to this function contains a valid handle of a °dONLNdûÑlê®(çl
  1005. CmPortInfo°dONLNd®Ñ®êŒ)<     data strl°dONLNd±ÑŒê‰)&uctur>`°dONLNd∂щê¸)e corr¿°dONLNdºÑ¸êø),esponding to the serial port indexed by the ¿°dONLNdËÑøê›)√index¿°dONLNdÌÑ›êfl) .°dONLNdÓëlùô(öl    parameterS†°dONLNd˜ëôùõ)-..°dONLNd˘£lØê(¨l    If an errR`°dONLNd£êØ„)$or is detected, the R`°dONLNd£„Ø7)SportInfoHandleR`°dONLNd$£7Øí)T parameter contains R`°dONLNd8£íØ™)[NULLÙ°dONLNd<£©Øæ) and °dONLNdA∞lº∫(πlCmGetPortInfo°dONLNdN∞∫º¿)N rR`°dONLNdP∞¿ºX)#eturns one of the values listed her$¿°dONLNds∞Xºb)òe: °dONLNdwΩl…Æ(Δl kCmAIPError., °dONLNdÉΩ…,)©-6201°dONLNdâΩD…v)/
  1006. An asynchr<¿°dONLNdìΩw…◊)3onous operation is alr5İdONLNd©Ω◊…Ó)`eady °dONLNdÆ»D‘Y(—Din prć°dONLNd≥»Y‘g)ogrJİdONLNd∂»h‘Ë)ess. Macintosh platform onlyS °dONLNd“»Á‘È)..°dONLNd‘”lfl¿(‹lkCmBadArgError., °dONLNd„”fl,)©-6204°dONLNdÈ”Dfl”)/ Parameter is or contains an addr‰ °dONLNd    ””flÓ)èess of °dONLNdfiDÍü(ÁDan invalid data item..°dONLNd&Èlı¥(Úl kCmCommError., °dONLNd3Èı,)©-6214°dONLNd9ÈDıK)/A∫†°dONLNd:ÈKıº) serial communication err∂`°dONLNdSȺı‰)q    or occurr≥@°dONLNd\ȉıÛ)(ed. °dONLNd`ÙDN(˝DWÛ`°dONLNdaÙM≠)    indows platform only1‡°dONLNduÙ≠Ø)`..°dONLNdwˇl (lkCmCurrentlyConnectedError., °dONLNdíˇ ,)©-6205°dONLNdòˇD ÷)/ The camera is connected with an °dONLNd∏
  1007. Dx* application..°dONLNd≈l!Ã(lkCmNoMemoryError., °dONLNd÷!,)©-6209°dONLNd‹D!÷)/ System failed to allocate memory=`°dONLNd¸÷!›)í.  .°dONLNd l,ÿ()lkCmNoSuchPortError., °dONLNd ,,)©-6210°dONLNd D,X)/Corrƒ °dONLNd X,Ê)esponding communication port °dONLNd:+D7è(4Ddoes not exist. WnİdONLNdK+è7Ô)Kindows platform only≠°dONLNd_+Ó7)_..°dONLNda6lBΔ(?lkCmNotOpenError.∏¿°dONLNdq6B')©-621°dONLNdu6'B,)1°dONLNdw6DBfi)$The driver has not been initialized..°dONLNdúAlMÃ(JlkCmProtocolError., °dONLNd≠AM,)©-6212°dONLNd≥ADMM)/PrN†°dONLNdµANMx)
  1008.  
  1009. otocol errK`°dONLNdøAxMÏ)*or during communication °dONLNd◊LDXå(UDwith the QuickT±°dONLNdÊLãX”)Gake 100 camera. °dONLNdˆWDcN(`DWÛ`°dONLNd˜WMc≠)    indows platform only1‡°dONLNd W≠cØ)`..°dONLNdbln®(kl
  1010. kNoPortErr., °dONLNdbn,)©-7947°dONLNdbDnw)/ GeoPort err†°dONLNd)bxnö)4or: Corr¡‡°dONLNd1bönÀ)"
  1011. esponding °dONLNd;mDy‚(vD#communication port does not exist. °dONLNd^xDѱ* Macintosh platform onlyE°dONLNdux±Ñ≥)m..°dONLNdwÉlèú(ålparamErr., °dONLNdÄÉè,)≥-50°dONLNdÑÉDè“)% Parameter is invalid. Macintosh °dONLNd§éDöÄ* platform only_İdONLNd±éÄöÇ)<.°dONLNd≥≤*ªQ(π*SEE ALSO
  1012. .°dONLNdº¿lÓ+BCmDisposePortInfo°dONLNdÕ¿“Ã)f described next; °dONLNdfi¿ÃO)G    CmConnect°dONLNdÁ¿OÃ])6 on °dONLNdο]Ãu)page °dONLNd¿uÃà)2-25°dONLNdÙ¿àÃä) 
  1013. ¸*¯4˝*¯ ˛*˛˛
  1014. ˇ·ˇ‚7^ .°dONLNdˆÔ*˝ó(˘*CmDisposePortInfoˇˇˇˇˇˇ(˘Ú2
  1015. .°dONLNd    l∞(l6pascal OSErr CmDisposePortInfo(CameraData cameraData, °dONLNdH¸(»+ê"CmPortInfoHandle portInfoHandle); °dONLNdk4l@®(=l
  1016. cameraData°dONLNdv4Æ@ )BThe private data strl°dONLNdä4 @!)]uctur>`°dONLNdè4!@,)e r¿°dONLNdí4,@]) eturned by ¿°dONLNdù4]@•)1 CmOpenDriver¿°dONLNd©4•@ÿ)H  when your .°dONLNd¥@ÆL0(IÆapplication opens the QuickT‰`°dONLNd–@/Lå)Åake 100 device driver‡°dONLNdÂ@çLí)^. .°dONLNdËPl\¿(YlportInfoHandle°dONLNd¯\Æh+B Handle of the °dONLNd\h,)B
  1017. CmPortInfo°dONLNd\,h:)< strl°dONLNd\:hP)uctur>`°dONLNd\Phv)
  1018. e to be fr¿°dONLNd#\vhâ)&eed..°dONLNd(Ç*ãc(â* DESCRIPTION
  1019. .°dONLNd4èlõÄ+BThe °dONLNd8èÄõÊ)CmDisposePortInfo°dONLNdIèÊõ)f  function frR`°dONLNdUèõ8)0ees the R`°dONLNd]è8õt)"
  1020. CmPortInfoR`°dONLNdgètõö)<     data str>`°dONLNdpèöõ∞)&uctur¿°dONLNduè∞õ )e and °dONLNd{úl®Œ(•lassociated memory prR`°dONLNdèúŒ®2)beviously allocated by R`°dONLNd•ú2®Ä)dCmGetPortInfoR`°dONLNd≤úÄ®Ö)N. ˇ.@ˇ ˇˇˇˇ@
  1021. ˇ·ˇ‚7^
  1022. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1023. , (‡2-254^H¿ˇˇ.°dONLNd\äh±(eä It is the r鯰dONLNd \±h¡)'@esponsibility of the application to call this function when the ,
  1024. Courierˇ˝<NW≤°dONLNdK\¬h˛(e¬
  1025. CmPortInfoˇˇW≤°dONLNdU\˛h)< data .°dONLNd[iäuï(rästrfi°dONLNd^iïu¨) ucturc‡°dONLNdci≠u)e is no longer needed.
  1026. ÉHë4ÑHë°dONLNdzÑäå©(ääIMPORTİdONLNdÄÑ©åπ)ANT
  1027. ˇ·ˇ‚7^
  1028. .°dONLNdÑèäõ (òä!Applications must dispose of the °dONLNd•è õ\)ñ
  1029. CmPortInfo°dONLNdØè\õÇ)<     data strl°dONLNd∏èÇõò)&uctur>`°dONLNdΩèòõ£)e r¿°dONLNd¿è£õ«) eturned °dONLNd»õäßó(§äby °dONLNdÀõóßÂ)CmGetPortInfo°dONLNdÿõÂß)N
  1030.  with the °dONLNd‚õßx)-CmDisposePortInfo°dONLNdÛõxß∑)f function beforR`°dONLNdõ∑ßæ)?e °dONLNdßä≥’(∞ämaking a call to °dONLNdß’≥#)KCmCloseDriver¬†°dONLNd"ß"≥')M. ,Zapf Dingbats.¬†°dONLNd%™,≤3)
  1031. s
  1032. .†°dONLNd&ß3≥5) .°dONLNd(ÃH’b(”HRESULëİdONLNd-Ãb’Ü)T CODES
  1033. .°dONLNd5⁄äÊ+(Upon successful completion, °dONLNdQ⁄Ên)~CmDisposePortInfo°dONLNdb⁄nÊt)f rR`°dONLNdd⁄tÊë)eturns R`°dONLNdk⁄ëÊØ)noErrï°dONLNdp⁄ÆÊ≥). °dONLNdsÏ䝯(ıä    If an errR`°dONLNd|ÏÆ¯Ô)$or is detected, R`°dONLNdåÏÔ¯U)ACmDisposePortInfoR`°dONLNdùÏU¯[)f r$¿°dONLNdüÏ[¯Û)#eturns one of the values listed her˜ °dONLNd¬ÏÚ¯˙)óe:°dONLNd≈˘äÃ(ä kCmAIPError., °dONLNd—˘3J)©-6201°dONLNd◊˘bî)/
  1034. An asynchr<¿°dONLNd·˘ïı)3onous operation is alr5İdONLNd˜˘ı )`eady °dONLNd¸bw(bin prć°dONLNdwÖ)ogrJİdONLNdÜ)ess. Macintosh platform onlyS °dONLNd )..°dONLNd"äfi(äkCmBadArgError., °dONLNd13J)©-6204°dONLNd7bÒ)/ Parameter is or contains an addr‰ °dONLNdWÒ )èess of °dONLNd^b&Ω(#ban invalid data item..°dONLNdt%ä1&(.äkCmCurrentlyConnectedError., °dONLNdè%31J)©-6205°dONLNdï%b1 )/%The camera is connected and needs to .°dONLNd∫0b<¬* be disconnected with °dONLNdœ0¬<
  1035. )` CmDisconnect°dONLNd€0
  1036. < )H °dONLNd‹;bGy(DbbeforR`°dONLNd·;yG¢)
  1037. e calling R`°dONLNdÎ;¢G))CmCloseDriverï°dONLNd¯;ÔGÙ)M. .°dONLNd˙FbRl(ObWÛ`°dONLNd˚FkRÀ)    indows platform only1‡°dONLNdFÀR–)`. .°dONLNdQä]‰(ZäkCmNotOpenError.∏¿°dONLNd"Q3]E)©-621°dONLNd&QE]J)1°dONLNd(Qb]¸)$The driver has not been initialized.°dONLNdMuH~o(|HSEE ALSO
  1038. .°dONLNdVÉäèÿ+BCmGetPortInfo°dONLNdcÉÿèÊ)N on °dONLNdgÉÊè˛)page °dONLNdlɲè)2-22°dONLNdpÉè), °dONLNdrÉèd)CmCloseDriver°dONLNdÉdèr)N on °dONLNdÉÉrèä)page °dONLNdàÉäèù)2-21°dONLNdåÉùèü) 
  1039. øH»4¿H« ¡H¡
  1040. ˇ·ˇ‚7^ .°dONLNdé≤H¿ã(ºH
  1041. CmConnect ˇˇˇˇˇˇ(º2
  1042. .°dONLNdö—ä›û(⁄ä.pascal OSErr CmConnect(CameraData cameraData, °dONLNd—flÎÊ+ê"CmPortInfoHandle portInfoHandle); °dONLNdÙ˜äΔ(ä
  1043. cameraData°dONLNdˇ˜Ã))BThe private data strl°dONLNd˜)?)]uctur>`°dONLNd˜?J)e r¿°dONLNd˜J{) eturned by ¿°dONLNd&˜{√)1 CmOpenDriver¿°dONLNd2˜√ˆ)H  when your .°dONLNd=ÃN( Ãapplication opens the QuickT‰`°dONLNdYM™)Åake 100 device driver‡°dONLNdn´∞)^. .°dONLNdqäfi(äportInfoHandle°dONLNdÄÃ++B Handle of a °dONLNdå+@)8
  1044. CmPortInfo°dONLNdñ@+N)< strl°dONLNdöN+d)uctur>`°dONLNdüd+)e that has been allocated and r¿°dONLNdæ+)åeturned °dONLNdΔ+Ã7Î(4Ãby a prR`°dONLNdÕ+Î7))evious call to R`°dONLNd‹+)7w)>CmGetPortInfoR`°dONLNdÈ+w7|)N. .°dONLNdÏQHZÅ(XH DESCRIPTION
  1045. .°dONLNd¯^äjû+BThe °dONLNd¸^ûj‘)    CmConnect°dONLNd^‘j”)6; function is used to establish a connection with a camera. !†°dONLNd@^”jˆ)ˇAfter a .°dONLNdHkäw(täconnection is made, the QuickT†°dONLNdfkw¯)ä4ake 100 device driver functions can be used to contrNİdONLNdök˘w)Âol the °dONLNd°xäÑØ(Åäcamera. °dONLNd™ääñÛ*QOn the Macintosh computer the connection is a high-speed serial connection. In a .°dONLNd˚óä£ï*WÛ`°dONLNd¸ó)
  1046. indows envir≈¿°dONLNdóŒ£): onment the ≈¿°dONLNdó£8)4    CmConnect≈¿°dONLNdó8£)60 function determines the fastest speed at which .°dONLNdL§ä∞ö(≠ä<the host and camera can communicate and selects that speed. ˇ∂@ˇ ˇˇˇˇ@
  1047. ˇ·ˇ‚7^
  1048. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1049. (‡*2-26    )BQuickT@)ake 100 Device Driver Reference4^*¿¯
  1050. ^*k¯4^*k¯°dONLNd^lfã(dlIMPORTİdONLNd^ãfõ)ANT
  1051. ˇ·ˇ‚7^
  1052. °dONLNdilus(rl;An application can connect with only one camera at a time. .°dONLNdPzlÜ/*(Although an application may allocate morR`°dONLNdxz/Ü_)√ e than one ,
  1053. CourierR`°dONLNdÉz_Üõ)0
  1054. CmPortInfoR`°dONLNdçzõÜù)< °dONLNdéÜlíx(èlstrl°dONLNdëÜxíé) uctur>`°dONLNdñÜéí%)"e by making multiple calls to the >`°dONLNd∏Ü%ís)óCmGetPortInfo>`°dONLNd≈Üsí¶)N function, a °dONLNd“ílû(õlkCmCurrentlyConnectedError°dONLNdÏíû)ú errR`°dONLNdíû<)    or will r$¿°dONLNd˘í<û≠)%esult if that application .°dONLNdûl™⁄(ßltries to connect with mor¬@°dONLNd,û⁄™/)ne than one camera. ,Zapf Dingbats°dONLNd@°5©<)[s
  1055. ∑*≈¯4∏*≈¯    °dONLNdB∂l¡(ælNote
  1056. ˇ·ˇ‚7^
  1057. .°dONLNdG√lœî*In the WÛ`°dONLNdO√ìœÿ)'indows softwar≈¿°dONLNd]√ÿœ˜)Ee envirò °dONLNdd√˜œ)onment ò °dONLNdk√œO)"    CmConnectò °dONLNdt√OœØ)6 determines the data .°dONLNdâœl€(ÿl"transfer speed at which the QuickT¥@°dONLNd´œ€Ñ)öake 100 camera and the host .°dONLNd«€lÁ¡(‰lcommunicate. TherR`°dONLNdÿ€¡Á”)Uefor$¿°dONLNd‹€”Á()e, the value in the $¿°dONLNd€(Á^)U    DataSpeed$¿°dONLNd˘€^Ág)6 fi$¿°dONLNd¸€gÁÉ)    eld of °dONLNdÁlÛ¿(lportInfoHandle°dONLNdÁ¿ÛΔ)T rR`°dONLNdÁΔÛ0)eturned by a call to the R`°dONLNd,Á0Û~)jCmGetPortInfoR`°dONLNd9Á~Û∞)N function is °dONLNdFÛlˇ(¸l+not valid until after a successful call to °dONLNdqÛˇS)±    CmConnect°dONLNdzÛSˇX)6. .°dONLNd}l…(lIf communication err‰ °dONLNdë…‚)]ors arŒ@°dONLNdó‚™).e detected during image data transfers in the °dONLNd≈lv(lWÛ`°dONLNdΔuØ)     indows envirA°dONLNd“∞†);7onment, the cause may be the transfer speed set at the °dONLNd    l(<(%l.time the connection with the camera is made. T@°dONLNd7<(U)–o corr≤ °dONLNd=U(¢)ect this situation, °dONLNdQ(l4v(1lWÛ`°dONLNdR(u4Í)    indows applications can crΩ °dONLNdl(Î4)v    eate an W◊İdONLNdu(4y)+indows initialization fi“İdONLNdç(z4ü)d    le (INI fiÒ°dONLNdó(ü4¨)%le) °dONLNdõ4l@÷(=lthat limits the upper thr``°dONLNd¥4÷@é)j)eshold for serial communication with the °dONLNd›@lLå(IlQuickTÄİdONLNd„@åL‘) ake 100 camera. Ÿ¿°dONLNdÛ@‘L÷)H °dONLNdıQl]ñ(Zl    The INI fiT`°dONLNdˇQó]Ï)+le must be in the W<†°dONLNdQÏ])Uindows r`†°dONLNdQ]0)'oot dir◊ °dONLNd!Q0]è)ectory and be named ˇˇMÓ.°dONLNd5]liz(flQT¬†°dONLNd7]yi≥) AKE-D.INI. é°dONLNdB]¥iŒ);The fi^|°dONLNdH]ŒiB)le must contain the section ˇ˝È ‰"°dONLNdd]Bi~)t
  1058. [QTake1-D]ˇˇMÓ‰"°dONLNdn]~iØ)<  as follows:°dONLNd{nlz®(wl
  1059. [QTake1-D]°dONLNdÜ{lá¿*MaxBaudRate = .°dONLNdî{¿á”)Tnnn °dONLNdôçlôÇ(ñlwher7°dONLNdùçÉôä)e ưdONLNdüçäôö)nnn.°dONLNd¢çõôK)) is a value that determines the upper thrˇ°dONLNdÀçKôè)∞eshold for data °dONLNd€ôl•Ø(¢ltransfer speed. „@°dONLNdÎôØ•)CAllowable values ar‚¿°dONLNd˛ô•¶)X%e 9600, 19200, 38400, and 57600. For .°dONLNd#•l±w(ÆlWÛ`°dONLNd$•v±≠)
  1060. indows, the Û`°dONLNd0•≠±„)7    CmConnectÛ`°dONLNd9•„±õ)6+ function uses 57,600 as the default upper .°dONLNdd±lΩy(∫lthrX¿°dONLNdg±yΩq)8eshold when determining the data transfer speed. If a pr°dONLNdü±rΩ´)˘oblem exists °dONLNd¨Ωl…Œ(Δlduring data transfer fr(‡°dONLNd√Ωœ…t)c%om the camera, use a lower value for .°dONLNdË…l’Æ(“l MaxBaudRate°dONLNdÛ…Æ’À)B in the°dONLNd˙…À’€) QT¬†°dONLNd˝…⁄’)
  1061. AKE-D.INI ¬†°dONLNd…’)8fì °dONLNd…’&)ile..ì °dONLNdÃ+‘1)u
  1062. .· °dONLNd…1’3) .°dONLNdÓ*˜D(ı*RESULëİdONLNdÓD˜h)T CODES
  1063. .°dONLNd¸lÍ+(Upon successful completion, °dONLNd9¸Í )~    CmConnect°dONLNdB¸ &)6 rR`°dONLNdD¸&C)eturns R`°dONLNdK¸Ca)noErrï°dONLNdP¸`c)..°dONLNdRlè(l    If an errÖ°dONLNd[è)#or is detected, this function r®@°dONLNdz¢)~#eturns one of the values listed her•İdONLNdù¢©)ïe:.°dONLNd†l'Æ($l kCmAIPError., °dONLNd¨',)©-6201°dONLNd≤D'v)/
  1064. An asynchr<¿°dONLNdºw'◊)3onous operation is alr5İdONLNd“◊'Ó)`eady °dONLNd◊&D2Y(/Din prć°dONLNd‹&Y2g)ogrJİdONLNdfl&h2Ë)ess. Macintosh platform onlyS °dONLNd˚&Á2È)..°dONLNd˝1l=¿(:lkCmBadArgError., °dONLNd 1=,)©-6204°dONLNd1D=”)/ Parameter is or contains an addr‰ °dONLNd21”=Ó)èess of °dONLNd9<DHü(EDan invalid data item..°dONLNdOGlS(PlkCmCurrentlyConnectedErrorˇˇ›î, ˇ»°dONLNdjGS,)©-6205.°dONLNdpGDSè)/The camera is alrè°dONLNdÅGèSÿ)Keady connected. .°dONLNdíRl^([lkCmCameraNotFoundErrorˇˇ›î, ˇ»°dONLNd©R^,)©-6206.°dONLNdØRD^œ)/Camera not found on this port. °dONLNdŒ]DiN* WÛ`°dONLNdœ]Mi≠)    indows platform only1‡°dONLNd„]≠iØ)`..°dONLNdÂhlt“(qlkCmHandshakeError., °dONLNd˜ht,)©-6207°dONLNd˝hDtÓ)/&Initial handshake with the camera has °dONLNd#sDl*     failed. W˝`°dONLNd,skÀ)'indows platform only;‡°dONLNd@sÀÕ)`..°dONLNdB~läÃ(álkCmNoMemoryError., °dONLNdS~ä,)©-6209°dONLNdY~Dä÷)/ System failed to allocate memory=`°dONLNdy~÷ä€)í. °dONLNd{âDïN(íDWÛ`°dONLNd|âMï≠)    indows platform only1‡°dONLNdêâ≠ïØ)`.ˇh@ˇ ˇˇˇˇ@
  1065. ˇ·ˇ‚7^
  1066. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1067. , (‡2-274^H¿,
  1068. Courier.°dONLNd\äh‰(eäkCmNotOpenError.∏¿°dONLNd\3hE)©-621°dONLNd\EhJ)1°dONLNd\bhñ)
  1069. The QuickTº@°dONLNd \ïh)3ake 100 driver has not been °dONLNd<gbsì(pbinitialized. .°dONLNdJrä~Í({äkCmProtocolError., °dONLNd[r3~J)©-6212°dONLNdarb~k)/PrN†°dONLNdcrl~ñ)
  1070.  
  1071. otocol errK`°dONLNdmrñ~
  1072. )*or during communication °dONLNdÖ}bâ∏(Übwith the camera. W$`°dONLNdó}∏â)Vindows platform °dONLNdßàbîu(ëbonly"†°dONLNd´àuîw)..°dONLNd≠ìäü¿(úä    kNoPodErr., °dONLNd∑ì3üJ)©-7937°dONLNdΩìbüÌ)/Camera not found on this port. °dONLNd‹ûb™œ* Macintosh platform onlyE°dONLNdÛûœ™—)m..°dONLNdıÆä∫À(∑äThis function rR`°dONLNdÆÀ∫Ë)Aeturns R`°dONLNd ÆË∫<)kCmBadArgErrorR`°dONLNdÆ<∫Ö)T if values in the R`°dONLNd+ÆÖ∫µ)IfamilyIDR`°dONLNd3Ƶ∫ )0 and R`°dONLNd8Æ ∫˙)deviceIDR`°dONLNd@Æ˙∫¸)0 °dONLNdAªä«ë(ƒäfi°dONLNdCªë«√) elds in the °dONLNdOª√«ˇ)2
  1073. CmPortInfo°dONLNdYªˇ«)< strl°dONLNd]ª«#)uctur>`°dONLNdbª#«4)e ar¿°dONLNdfª4« )"e other than the global constants ¿°dONLNdઠ« )ñ kCmFamilyID¿°dONLNdìª «)B °dONLNdî»ä‘ù(—äand °dONLNdò»ù‘fl) kCmDeviceID°dONLNd£»fl‘Ë)B, rR`°dONLNd¶»Ë‘)     espectively6†°dONLNd±»‘w)4. This function also r    °dONLNd«»w‘î)[eturns °dONLNdŒ’ä·(fiäkCmCameraNotFoundError°dONLNd‰’·,)Ñ if the °dONLNdÏ’,·\)familyID°dONLNdÙ’\·q)0 and °dONLNd˘’q·°)deviceID°dONLNd’°·ß)0 fPİdONLNd’ß· )ields ar"‡°dONLNd ’ ·Ú)#
  1074. e not corrı@°dONLNd’Ò·)'ect. °dONLNdÁäÛ¶(äFor WÛ`°dONLNd Á•Û)indows applications, Û`°dONLNd5ÁÛ<)a    CmConnectÛ`°dONLNd>Á<Ûã)6 also updates the Û`°dONLNdPÁãÛ¡)O    dataSpeedÛ`°dONLNdYÁ¡Û )6 fiÛ`°dONLNd\Á Û¯)     eld of the ˇ˛é°dONLNdgÙäΔ(˝ä
  1075. CmPortInfoˇˇÑ∞°dONLNdqÙΔ”)< str∞°dONLNduÙ”È)uctur√°dONLNdzÙÈ)Fe with the actual data transfer rate that has been set for subsequent .°dONLNd¿ä (
  1076. ä communication with the camera.  °dONLNd·'H0o(.HSEE ALSO
  1077. .°dONLNdÍ5äAÿ+BCmGetPortInfo°dONLNd˜5ÿAÊ)N on °dONLNd˚5ÊA˛)page °dONLNd5˛A)2-22°dONLNd5A); °dONLNd5A^) CmDisconnect°dONLNd5^A•)H, described next 
  1078. qHz4rHy sHs
  1079. ˇ·ˇ‚7^ .°dONLNd$dHrò(nH CmDisconnectˇˇˇˇˇˇ(n2
  1080. .°dONLNd2Éäè∂(åä2pascal OSErr CmDisconnect(CameraData cameraData); °dONLNdeõäßΔ*
  1081. cameraData°dONLNdpõÃß))BThe private data strl°dONLNdÑõ)ß?)]uctur>`°dONLNdâõ?ßJ)e r¿°dONLNdåõJß{) eturned by ¿°dONLNdóõ{ß√)1 CmOpenDriver¿°dONLNd£õ√߈)H  when your .°dONLNdÆßÃ≥N(∞Ãapplication opens the QuickT‰`°dONLNd ßM≥™)Åake 100 device driver‡°dONLNdflß´≥∞)^. °dONLNd‚ÕH÷Å(‘H DESCRIPTION
  1082. .°dONLNdÓ⁄äÊû+BThe °dONLNdÚ⁄ûÊÊ) CmDisconnect°dONLNd˛⁄ÊÊÈ)H9 function ends the connection with the camera that was prR`°dONLNd7⁄ÈÊ(„È    eviously °dONLNd@ÁäÛœ(äestablished by °dONLNdOÁœÛ)E    CmConnect°dONLNdXÁÛ
  1083. )6. ˇˇ¿°dONLNd[˘ä(äAn application should call ˇˇ@°dONLNdv˘M){ CmDisconnectˇˇ¿°dONLNdǢM°)H whenever it has fi°dONLNdï˘°)Tnished interacting with a .°dONLNdØäØ(äcamera. " °dONLNd∑Øz)%/Applications must also call this function befor:†°dONLNdÊz)À!e connecting with a camera other ˇˇüä.°dONLNdä(äthan the one with which therp°dONLNd#8)Ü e is a curr!°dONLNd.9{))ent connection. ƒ°dONLNd>{ß)B
  1084. After the ˇ˛fiû@ÿ°dONLNdHßÔ), CmDisconnectˇˇüä@ÿ°dONLNdTÔ)H
  1085.  function °dONLNd^ ä,ÿ()ähas successfully rR`°dONLNdp ÿ,œ)N6eturned, the application can then make another call toR`°dONLNd¶ œ,—)˜ R`°dONLNdß —,)    CmConnectR`°dONLNd∞ ,    )6 R`°dONLNd±     ,)to .°dONLNd¥-ä9G(6ä+establish a new connection for the camera. .°dONLNd‡?äKû*The °dONLNd‰?ûKÊ) CmDisconnect°dONLNd?ÊKØ)H, function terminates any outstanding asynchrR`°dONLNd?ØK)…onous operation with °dONLNd1LäX±(Uä
  1086. a call to °dONLNd;L±X5)'CmCancelAsyncOperation°dONLNdQL5X`)Ñ     on the WÛ`°dONLNdZL_X)*"indows platform. On the Macintosh °dONLNd|Yäe∏(bä
  1087. platform, °dONLNdÜY∏eË).PBKillIO°dONLNdéYËe¿)02 is called to cancel the operation. The callback rR`°dONLNd¿Y¿eˇ)ÿoutine for the .°dONLNdœfär’(oäcanceled asynchrÌ`°dONLNdflf’rm)K$onous function will also be called. 
  1088. ÅHè4ÅHé°dONLNdÅäâ©(áäIMPORTİdONLNd
  1089. Å©âπ)ANT
  1090. ˇ·ˇ‚7^
  1091. .°dONLNdåäò(ïäAn application should not call °dONLNd-åòd)åCmCloseDriver°dONLNd:ådòØ)N while a camera °dONLNdJòä§˝(°äconnection is active. Call °dONLNdeò˝§E)s CmDisconnect°dONLNdqòE§…)H to end the camera connection °dONLNdè§ä∞»(≠äand then call °dONLNdù§»∞)>CmCloseDriver¬†°dONLNd™§∞)M.,Zapf Dingbats.¬†°dONLNd¨ßØ$)s
  1092. .†°dONLNd≠§$∞&) ˇ†@ˇ ˇˇˇˇ@
  1093. ˇ·ˇ‚7^
  1094. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1095. (‡*2-28    )BQuickT@)ake 100 Device Driver Reference4^*¿¯°dONLNd\*eD(c*RESULëİdONLNd\Deh)T CODES
  1096. .°dONLNdjlv≠+(This function rR`°dONLNdj≠v )Aeturns ,
  1097. CourierR`°dONLNd#j vË)noErrR`°dONLNd(jËv) on success. .°dONLNd6|làà(ÖlOn err.İdONLNd<|âàí)orŸ@°dONLNd>|ëà‘), this function r†°dONLNdO|‘ài)C#eturns one of the values listed her‚‡°dONLNdr|iàp)ïe:.°dONLNduâlï¿(ílkCmBadArgError., °dONLNdÑâï,)©-6204°dONLNdäâDï”)/ Parameter is or contains an addr‰ °dONLNd™â”ïÓ)èess of °dONLNd±îD†ü(ùDan invalid data item..°dONLNd«ül´‰(®lkCmNotConnectedErrorˇˇ›î, ˇ»°dONLNd‹ü´,)©-6208.°dONLNd‚üD´K)/A∫†°dONLNd„üK´Ï)$ connection with the camera has not °dONLNd™D∂y(≥D been made. .°dONLNdµl¡Δ(ælkCmNotOpenError.∏¿°dONLNd#µ¡')©-621°dONLNd'µ'¡,)1°dONLNd)µD¡x)
  1098. The QuickTº@°dONLNd3µw¡Ú)3ake 100 driver has not been °dONLNdO¿DÃs(…D initialized.°dONLNd\‰*ÌQ(Î*SEE ALSO
  1099. .°dONLNdeÚl˛¢+B    CmConnect°dONLNdnÚ¢˛∞)6 on °dONLNdrÚ∞˛»)page °dONLNdwÚ»˛€)2-25°dONLNd{Ú€˛‡), °dONLNd}Ú‡˛.)CmCloseDriver°dONLNdäÚ.˛<)N on °dONLNdéÚ<˛T)page °dONLNdìÚT˛g)2-21°dONLNdóÚg˛i) 
  1100. "**¯4#**¯ %*%˛
  1101. ˇ·ˇ‚7^ .°dONLNdô*#H(*Contr˘Ä°dONLNdûH#¶)olling the Cameraˇˇˇˇˇˇ(Ú2
  1102. °dONLNd±*l6“(3lThe functions in this grŒ°dONLNd…*“6Ó)foup arë¿°dONLNdœ*Ô6) e used to rÅ¿°dONLNd⁄*6ÿ)..etrieve or set various characteristics of the °dONLNd7lCå(@lQuickTÄİdONLNd7åCÀ) Gake 100 camera, for example, getting or setting the camera owner name. 
  1103. s*|¯4t*{¯ u*u˛
  1104. ˇ·ˇ‚7^ °dONLNdVf*tí(p*CmGetCameraInfoˇˇˇˇˇˇ(pÚ2
  1105. .°dONLNdgÖlë§(él4pascal OSErr CmGetCameraInfo(CameraData cameraData, °dONLNd•ìü∂+¢CmCameraInfoPtr cameraInfo);°dONLNd¬´l∑®(¥l
  1106. cameraData°dONLNdÕ´Æ∑ )BThe private data strl°dONLNd·´ ∑!)]uctur>`°dONLNdÊ´!∑,)e r¿°dONLNdÈ´,∑]) eturned by ¿°dONLNdÙ´]∑•)1 CmOpenDriver¿°dONLNd´•∑ÿ)H  when your .°dONLNd ∑Æ√0(¿Æapplication opens the QuickT‰`°dONLNd'∑/√å)Åake 100 device driver‡°dONLNd<∑ç√í)^. .°dONLNd?«l”®(–l
  1107. cameraInfo°dONLNdJ”ÆflÛ+B Pointer to an arR`°dONLNdZ”Ûfl)Eea lar$¿°dONLNd`”flÇ)ge enough to hold an entir˜ °dONLNdz”Åflà)se ˜ °dONLNd|”àfl–) CmCameraInfo˜ °dONLNdà”–fl“)H .°dONLNdâflÆÎπ(ËÆstrfi°dONLNdåflπΖ) ucturc‡°dONLNdëfl—Î⁄)e. °dONLNdï*c( * DESCRIPTION
  1108. .°dONLNd°lÄ+BThe °dONLNd•Ä⁄)CmGetCameraInfo°dONLNd¥⁄)Z  function rR`°dONLNdøi),etrieves information r$¿°dONLNd’i«)celated to the QuickT9¿°dONLNdÈΔÍ)]ake 100 °dONLNdÒl+Ï((lcamera. The information is rR`°dONLNdÏ+W)Äeturned in the form of a R`°dONLNd&W+ü)k CmCameraInfoR`°dONLNd2ü+≈)H     data str>`°dONLNd;≈+€)&uctur¿°dONLNd@€+Â)e, .°dONLNdC,l8ß(5ldescribed on °Ä°dONLNdP,ß8æ);page |`°dONLNdU,ø8—)2-14–@°dONLNdY,—8÷). °dONLNd\S*\D(Z*RESULëİdONLNdaSD\h)T CODES
  1109. .°dONLNdi`ll¸+( Upon successful completion, the °dONLNdâ`¸lV)êCmGetCameraInfo°dONLNdò`VlÇ)Z  function rR`°dONLNd£`Çlü),eturns R`°dONLNd™`ülΩ)noErrR`°dONLNdØ`Ωl‰)     and the °dONLNd∏mlyv(vlarR`°dONLNd∫mvy“)
  1110. ea pointed to by the R`°dONLNdœm“y)\
  1111. cameraInfoR`°dONLNdŸmy{)< parameter contains the R`°dONLNdÒm{y√)m CmCameraInfoR`°dONLNd˝m√y›)H data .°dONLNdzlÜw(Élstrfi°dONLNdzwÜé) ucturc‡°dONLNd zèÜ®)e corrJ‡°dONLNdz®Ü)esponding to the currC`°dONLNd&zÜt)_ently connected camera. ˇ@ˇ ˇˇˇˇ@
  1112. ˇ·ˇ‚7^
  1113. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1114. , (‡2-294^H¿°dONLNd\ähΩ(eä Upon failur°dONLNd \æh)4e, this function r◊°dONLNd\hö)G#eturns one of the values listed her‘@°dONLNd@\öh)ïe. Note that in these err„`°dONLNdY\h )gor .°dONLNd\iäu˛(räcases the content of the arR`°dONLNdwi˛uH)tea pointed to by ,
  1115. CourierR`°dONLNdàiHuÑ)J
  1116. cameraInfoR`°dONLNdíiÑu™)<
  1117.  is not af$¿°dONLNdúi™u…)&fected.°dONLNd§väÇÃ(ä kCmAIPError., °dONLNd∞v3ÇJ)©-6201°dONLNd∂vbÇî)/
  1118. An asynchr<¿°dONLNd¿vïÇı)3onous operation is alr5İdONLNd÷vıÇ )`eady °dONLNd€Åbçw(äbin prć°dONLNd‡ÅwçÖ)ogrJİdONLNd„ÅÜçò)ess. .°dONLNdÈåäòfi(ïäkCmBadArgError., °dONLNd¯å3òJ)©-6204°dONLNd˛åbòÒ)/ Parameter is or contains an addr‰ °dONLNdåÒò )èess of °dONLNd%ób£ø(†ban invalid data item. .°dONLNd<¢äÆfi(´äkCmCameraError., °dONLNdK¢3ÆJ)©-6200°dONLNdQ¢bÆp)/ErrS`°dONLNdT¢pÆ˚) or detected by the camera. Call .°dONLNdt≠bπ∂(∂bCmGetErrorInfo°dONLNdÇ≠∂ππ)T.°dONLNdÑ∏äƒ(¡äkCmCameraNotFoundError., °dONLNdõ∏3ƒJ)©-6206°dONLNd°∏bƒ)/&Device connected to the port is not a °dONLNd«√bœÇ* QuickTÄİdONLNdÕ√Çœ˚) ake 100 camera. Macintosh °dONLNdÁŒb⁄û(◊bplatform only_İdONLNdÙŒû⁄£)<. .°dONLNd˜Ÿä“(‚ä kCmCommError., °dONLNdŸ3ÂJ)©-6214°dONLNd
  1119. ŸbÂi)/A∫†°dONLNd ŸiÂ⁄) serial communication err∂`°dONLNd$Ÿ⁄Â)q    or occurr≥@°dONLNd-ŸÂ)(ed. °dONLNd1‰bl(ÌbWÛ`°dONLNd2‰kÀ)    indows platform only1‡°dONLNdF‰À–)`. .°dONLNdIÔä˚Í(¯äkCmNoMemoryError., °dONLNdZÔ3˚J)©-6209°dONLNd`Ôb˚Ù)/ System failed to allocate memory=`°dONLNdÄÔÙ˚˘)í. °dONLNdÇ˙bl(bWÛ`°dONLNdÉ˙kÀ)    indows platform only1‡°dONLNdó˙À–)`. .°dONLNdöä(äkCmNotConnectedErrorˇˇ›î, ˇ»°dONLNdØ3J)©-6208.°dONLNdµbi)/A∫†°dONLNd∂i
  1120. )$ connection with the camera has not °dONLNd⁄bó(b been made. .°dONLNdÊä'‰($äkCmNotOpenError.∏¿°dONLNdˆ3'E)©-621°dONLNd˙E'J)1°dONLNd¸b'ñ)
  1121. The QuickTº@°dONLNdï')3ake 100 driver has not been °dONLNd"&b2ì(/binitialized. .°dONLNd01ä=Í(:äkCmProtocolError., °dONLNdA13=J)©-6212°dONLNdG1b=k)/PrN†°dONLNdI1l=ñ)
  1122.  
  1123. otocol errK`°dONLNdS1ñ=
  1124. )*or during communication °dONLNdk<bHô(Eb with QuickTS†°dONLNdv<ôHÎ)7ake 100 camera. W @°dONLNdá<ÎH)Rindows °dONLNdéGbSû(Pbplatform only_İdONLNdõGûS£)<. 
  1125. _Hm4`Hm    °dONLNdû^äiù(fäNote
  1126. ˇ·ˇ‚7^
  1127. °dONLNd£käw* Applications must allocate an arÓİdONLNd√kwc)éea of memory lar¿°dONLNd”kdw«)Lge enough to hold the .°dONLNdÈwäɆ(ÄäentirR`°dONLNdÓw†Éß)e R`°dONLNdwßÉÔ) CmCameraInfoR`°dONLNd¸wÔÉ˝)H str>`°dONLNdw˝É)uctur¿°dONLNdwÉ?) e or an err„ °dONLNdw>Éu)+ or may occur%¿°dONLNdwuÉx)7.,Zapf Dingbats.%¿°dONLNdz}ÇÉ)u
  1128. .s¿°dONLNdwÉÉÖ) .°dONLNd!úH•o(£HSEE ALSO
  1129. .°dONLNd*™ä∂Í+BCmGetPictureInfo°dONLNd:™Í∂4)`, described next; °dONLNdL™4∂à)JCmGetErrorInfo°dONLNdZ™à∂ñ)T on °dONLNd^™ñ∂Æ)page °dONLNdc™Æ∂¡)2-48°dONLNdg™¡∂√) 
  1130. ÊHÔ4ÁHÓ ËHË
  1131. ˇ·ˇ‚7^ .°dONLNdiŸHÁ≠(„HCmGetPictureInfoˇˇˇˇˇˇ(„2
  1132. .°dONLNd{¯ä»(ä5pascal OSErr CmGetPictureInfo(CameraData cameraData, °dONLNd∏û+~unsigned short pictureNo,°dONLNdŸ ¬*CmPictureInfoPtr pictureInfo); °dONLNd˘,ä8Δ(5ä
  1133. cameraData°dONLNd,Ã8))BThe private data strl°dONLNd,)8?)]uctur>`°dONLNd,?8J)e r¿°dONLNd ,J8{) eturned by ¿°dONLNd+,{8√)1 CmOpenDriver¿°dONLNd7,√8ˆ)H  when your .°dONLNdB8ÃDN(AÃapplication opens the QuickT‰`°dONLNd^8MD™)Åake 100 device driver‡°dONLNds8´D∞)^. .°dONLNdvHäT¿(Qä    pictureNo.°dONLNdÄHÃT8)BThe number that identifiÿ‡°dONLNdòH8Tì)les a particular pictur:†°dONLNdÆHîT¨)\e stor> °dONLNd¥H¨T˘)ed in the internal °dONLNd«TÃ`4(]Ãmemory of the camera. .°dONLNdfidäpÃ(mä pictureInfo.°dONLNdÍpÃ|+B Pointer to an arÖ¿°dONLNd˙p|[)Dea of memory larذdONLNd
  1134. p[|œ)Kge enough to hold an entir^‡°dONLNd$p–|◊)ue .°dONLNd&|Ãà(ÖÃCmPictureInfo°dONLNd3|à()N strl°dONLNd7|(à>)uctur>`°dONLNd<|>àF)e.ˇ†@ˇ ˇˇˇˇ@
  1135. ˇ·ˇ‚7^
  1136. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1137. (‡*2-30    )BQuickT@)ake 100 Device Driver Reference4^*¿¯°dONLNd\*ec(c* DESCRIPTION
  1138. .°dONLNd jlvÄ+BThe ,
  1139. Courier°dONLNdjÄv‡)CmGetPictureInfo°dONLNd j‡v )`  function rR`°dONLNd+j vo),etrieves information r$¿°dONLNdAjovÓ)celated to a particular pictur˜ °dONLNd^jÌvÙ)~e .°dONLNd`wlÉö(Äl
  1140. image storœ°dONLNdjwöÉÎ).Med in the internal memory of the camera. The information is in the form of a .°dONLNd∑Ñlê∫(çlCmPictureInfo°dONLNdƒÑ∫ê‡)N     data strl°dONLNdÕчêˆ)&uctur>`°dONLNd“шêc)e, which is described on >`°dONLNdÎÑcê{)mpage >`°dONLNdÑ{êé)2-18>`°dONLNdÙÑéêì). .°dONLNd˜ñl¢≤(ülEach image stor¨`°dONLNdñ≤¢x)F+ed within the internal memory of the QuickT~@°dONLNd1ñx¢÷)Δake 100 camera has a °dONLNdF£lØH(¨l2numeric value associated with it. This number is r¿°dONLNdx£IØ])›eferrüİdONLNd}£]ب)ed to as the pictur¿`°dONLNd꣨Ø÷)Oe number=°dONLNdò£÷Ø€)*. °dONLNdö∞lºõ(πl Essentially†°dONLNd•∞õº )/B, the camera uses numbers to name the images that have been capturPİdONLNdÁ∞ ºÌ(π ed. The °dONLNdÔΩl…û(Δl
  1141. numbers arÚ`°dONLNd˘Ωû…Á)2e assigned in chr§†°dONLNd
  1142. ΩË…!)Jonological orIİdONLNdΩ"…0):derd °dONLNdΩ0…b) , with the fi°`°dONLNd'Ωb…ä)2
  1143. rst pictur¸†°dONLNd1Ωä…œ)(e taken numberıİdONLNd?Ωœ…ˆ)E
  1144. ed 1, the °dONLNdI l÷ú(”l next picturo@°dONLNdT ú÷·)0e taken numberh °dONLNdb ·÷f)E!ed 2, and so on. It is the pictur@‡°dONLNdÉ f÷Ã)Öe number that is specifi‰Ä°dONLNdõ Ã÷Ù)f
  1145. ed in the .°dONLNd•◊l„¢(‡l    pictureNo°dONLNdÆ◊¢„‘)6
  1146.  parameter¬†°dONLNd∏◊”„ÿ)1. .°dONLNdªÈlıô(Úl
  1147. The pictur%°dONLNd≈ÈöıÁ).Me numbering sequence starts again at the number 1 after a successful call to .°dONLNdˆlù(ˇl either the °dONLNdˆù«)1CmErase°dONLNd$ˆ«Ê)* or the °dONLNd,ˆÊ.) CmEraseAsync°dONLNd8ˆ.Y)H  function. .°dONLNdD*%D(#*RESULëİdONLNdID%h)T CODES
  1148. .°dONLNdQ*l6¸+( Upon successful completion, the °dONLNdq*¸6\)êCmGetPictureInfo°dONLNdÅ*\6à)`  function rR`°dONLNdå*à6•),eturns R`°dONLNdì*•6√)noErrR`°dONLNdò*√6Í)     and the ˇˇ€ê°dONLNd°7lCv(@larR`°dONLNd£7vC—)
  1149. ea pointed to by the ˇˇí∞ú0°dONLNd∏7—C)[ pictureInfoˇˇ€êú0°dONLNd√7C)B parameter contains the ˇˇí∞
  1150. p°dONLNd€7ÄCŒ)mCmPictureInfoˇˇ€ê
  1151. p°dONLNdË7ŒC€)N str“°dONLNdÏ7€CÒ)uctur§`°dONLNdÒ7ÒC˜)e °dONLNdÛDlP}(MlcorrR`°dONLNd˜D}P‰)esponding to the pictur$¿°dONLNdD‰P)g    e identifi$¿°dONLNdDP:)*
  1152. ed by the $¿°dONLNd"D:P|), pictureInfo$¿°dONLNd-D|PÆ)B
  1153.  parameterg`°dONLNd7D≠P≤)1. .°dONLNd:Vlbè(_l    If an errÖ°dONLNdCVèb˛)#or is detected, the value rù†°dONLNd^V˛bé)o"eturned is one of those listed her~¿°dONLNdÄVébˆ)êe. Note that in this case .°dONLNdöclo«(llthe content of the arR`°dONLNdØc«o)[ea pointed to by R`°dONLNd¿coS)J pictureInfoR`°dONLNdÀcSos)B is unaf$¿°dONLNd”csoí) fected.°dONLNd€pl|Æ(yl kCmAIPError., °dONLNdÁp|,)©-6201°dONLNdÌpD|v)/
  1154. An asynchr<¿°dONLNd˜pw|◊)3onous operation is alr5İdONLNdp◊|Ó)`eady °dONLNd{DáY(ÑDin prć°dONLNd{Yág)ogrJİdONLNd{ház)ess. .°dONLNd Ülí¿(èlkCmBadArgError., °dONLNd/Üí,)©-6204°dONLNd5ÜDí”)/ Parameter is or contains an addr‰ °dONLNdUÜ”íÓ)èess of °dONLNd\ëDù°(öDan invalid data item. .°dONLNdsúl®¿(•lkCmCameraError., °dONLNdÇú®,)©-6200°dONLNdàúD®R)/ErrS`°dONLNdãúR®›) or detected by the camera. Call .°dONLNd´ßD≥ò(∞DCmGetErrorInfo°dONLNdπßò≥ù)T. °dONLNdº≤læ(ªlkCmCameraNotFoundError., °dONLNd”≤æ,)©-6206°dONLNdŸ≤DæÁ)/&Device connected to the port is not a °dONLNdˇΩD…d* QuickTÄİdONLNdΩd…›) ake 100 camera. Macintosh °dONLNd»D‘Ä(—Dplatform only_İdONLNd,»Ä‘Ö)<. .°dONLNd/”lfl¥(‹l kCmCommError., °dONLNd<”fl,)©-6214°dONLNdB”DflK)/A∫†°dONLNdC”Kflº) serial communication err∂`°dONLNd\”ºfl‰)q    or occurr≥@°dONLNde”‰flÛ)(ed. °dONLNdifiDÍN(ÁDWÛ`°dONLNdjfiMÍ≠)    indows platform only1‡°dONLNd~fi≠Í≤)`. .°dONLNdÅÈlıÃ(ÚlkCmNoMemoryError., °dONLNdíÈı,)©-6209°dONLNdòÈDı÷)/ System failed to allocate memory=`°dONLNd∏È÷ı€)í. °dONLNd∫ÙDN(˝DWÛ`°dONLNdªÙM≠)    indows platform only1‡°dONLNdœÙ≠≤)`. .°dONLNd“ˇl ‰(lkCmNotConnectedError., °dONLNdÁˇ ,)©-6208°dONLNdÌˇD K)/A∫†°dONLNdÓˇK Ï)$ connection with the camera has not °dONLNd
  1155. Dy(D been made. .°dONLNdl!Δ(lkCmNotOpenError.∏¿°dONLNd.!')©-621°dONLNd2'!,)1°dONLNd4D!x)
  1156. The QuickTº@°dONLNd>w!Ú)3ake 100 driver has not been °dONLNdZ D,u()Dinitialized. .°dONLNdh+l7Ã(4lkCmProtocolError., °dONLNdy+7,)©-6212°dONLNd+D7M)/PrN†°dONLNdÅ+N7x)
  1157.  
  1158. otocol errK`°dONLNdã+x7Ï)*or during communication °dONLNd£6DB{(?D with QuickTS†°dONLNdÆ6{BÕ)7ake 100 camera. W @°dONLNdø6ÕB)Rindows °dONLNdΔADMÄ(JDplatform only_İdONLNd”AÄMÇ)<.°dONLNd’e*nQ(l*SEE ALSO
  1159. .°dONLNdfislΔ+BCmGetCameraInfo°dONLNdÌsΔ‘)Z on °dONLNdÒs‘Ï)page °dONLNdˆsÏˇ)2-28°dONLNd˙sˇ), °dONLNd¸sv)CmGetThumbnailImage°dONLNdsvÑ)r on °dONLNdsÑú)page °dONLNdsúØ)2-54°dONLNdsØ¥), °dONLNdÄlåÿ(âlCmGetFullSizeImage°dONLNd0ÄÿåÊ)l on °dONLNd4ÄÊå˛)page °dONLNd9IJå)2-57°dONLNd=Äå), °dONLNd?Äåj)CmGetErrorInfo°dONLNdMÄjåx)T on °dONLNdQÄxåê)page °dONLNdVÄêå£)2-48°dONLNdZÄ£å•) ˇ§@ˇ ˇˇˇˇ@
  1160. ˇ·ˇ‚7^
  1161. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1162. , (‡2-314^H¿
  1163. jHr4jHr lHl
  1164. ˇ·ˇ‚7^ °dONLNd\Hjx(fHCmEraseˇˇˇˇˇˇ(f2,
  1165. Courier
  1166. .°dONLNd    {äáí(Ñä,pascal OSErr CmErase(CameraData cameraData);°dONLNd6ìäüΔ*
  1167. cameraData°dONLNdAìÃü))BThe private data strl°dONLNdUì)ü?)]uctur>`°dONLNdZì?üJ)e r¿°dONLNd]ìJü{) eturned by ¿°dONLNdhì{ü√)1 CmOpenDriver¿°dONLNdtì√üˆ)H  when your .°dONLNdüôN(®Ãapplication opens the QuickT‰`°dONLNdõüM´™)Åake 100 device driver‡°dONLNd∞ü´´∞)^. °dONLNd≥≈HŒÅ(ÃH DESCRIPTION
  1168. .°dONLNdø“äfiû+BThe °dONLNd√“ûfi»)CmErase°dONLNd “»fiµ)*6 function erases all of the images that have been storR`°dONLNd“µfi)Ìed in the internal °dONLNdfläÎÛ(Ëämemory of the camera. !†°dONLNd)flÛÎb)iAfter a successful call to !†°dONLNdDflbÎå)oCmErase!†°dONLNdKflåÎæ)* , the picturÙ°dONLNdWflΩÎÙ)1 e numbering .°dONLNdcÏä¯∏(ıä
  1169. sequence r@¿°dONLNdmÏπ¯.)/estarts with the number 1. 
  1170. H4H    °dONLNdâäù(äNote
  1171. ˇ·ˇ‚7^
  1172. .°dONLNdéä°*If errR`°dONLNdî°∫)ors ar$¿°dONLNdö∫)e not detected, the $¿°dONLNdÆ9)UCmErase$¿°dONLNdµ9«)*! function completes successfully °dONLNd÷ä*°('äand rR`°dONLNd€°*æ)eturns R`°dONLNd‚æ*‹)noErrï°dONLNdÁ€*$), even if the currg`°dONLNd˘$*¥)I ently connected camera does not .°dONLNd*ä6(3äcontain any images to erase.,Zapf Dingbats‡†°dONLNd6- 5)Åu
  1173. .†°dONLNd7*6) °dONLNd9PHYb(WHRESULëİdONLNd>PbYÜ)T CODES
  1174. .°dONLNdF]äiG+(+Upon successful completion, this function rR`°dONLNdq]Gid)Ωeturns R`°dONLNdx]diÇ)noErrï°dONLNd}]ÅiÜ). .°dONLNdÄoä{≠(xä    If an errÖ°dONLNdâo≠{)#or is detected, the value rù†°dONLNd§o{¶)o eturned is one of the following:.°dONLNd≈|äàÃ(Öä kCmAIPError., °dONLNd—|3àJ)©-6201°dONLNd◊|bàî)/
  1175. An asynchr<¿°dONLNd·|ïàı)3onous operation is alr5İdONLNd˜|ıà )`eady °dONLNd¸ábìw(êbin prć°dONLNdáwìÖ)ogrJİdONLNdáÜìò)ess. .°dONLNd
  1176. íäûfi(õäkCmBadArgError., °dONLNdí3ûJ)©-6204°dONLNdíbûÒ)/ Parameter is or contains an addr‰ °dONLNd?íÒû )èess of °dONLNdFùb©ø(¶ban invalid data item. .°dONLNd]®ä¥fi(±äkCmCameraError., °dONLNdl®3¥J)©-6200°dONLNdr®b¥p)/ErrS`°dONLNdu®p¥˚) or detected by the camera. Call .°dONLNdï≥bø∂(ºbCmGetErrorInfo°dONLNd£≥∂øª)T. °dONLNd¶æä («äkCmCameraNotFoundError., °dONLNdΩæ3 J)©-6206°dONLNd√æb )/&Device connected to the port is not a °dONLNdÈ…b’Ç* QuickTÄİdONLNdÔ…Ç’˚) ake 100 camera. Macintosh °dONLNd    ‘b‡û(›bplatform only_İdONLNd‘û‡£)<. .°dONLNdfläΓ(Ëä kCmCommError., °dONLNd&fl3ÎJ)©-6214°dONLNd,flbÎi)/A∫†°dONLNd-fliÎ⁄) serial communication err∂`°dONLNdFfl⁄Î)q    or occurr≥@°dONLNdOflÎ)(ed. °dONLNdSÍbˆl(ÛbWÛ`°dONLNdTÍkˆÀ)    indows platform only1‡°dONLNdhÍÀˆ–)`. .°dONLNdkıäÍ(˛äkCmNoMemoryError., °dONLNd|ı3J)©-6209°dONLNdÇıbÙ)/ System failed to allocate memory=`°dONLNd¢ıÙ˘)í. °dONLNd§b l(    bWÛ`°dONLNd•k À)    indows platform only1‡°dONLNdπÀ –)`. .°dONLNdº ä(äkCmNotConnectedError., °dONLNd— 3J)©-6208°dONLNd◊ bi)/A∫†°dONLNdÿ i
  1177. )$ connection with the camera has not °dONLNd¸b"ó(b been made. .°dONLNd!ä-‰(*äkCmNotOpenError.∏¿°dONLNd!3-E)©-621°dONLNd!E-J)1°dONLNd!b-ñ)
  1178. The QuickTº@°dONLNd(!ï-)3ake 100 driver has not been °dONLNdD,b8ì(5binitialized. .°dONLNdR7äCÍ(@äkCmProtocolError., °dONLNdc73CJ)©-6212°dONLNdi7bCk)/PrN†°dONLNdk7lCñ)
  1179.  
  1180. otocol errK`°dONLNdu7ñC
  1181. )*or during communication °dONLNdçBbNô(Kb with QuickTS†°dONLNdòBôNÎ)7ake 100 camera. W @°dONLNd©BÎN)Rindows °dONLNd∞MbYû(Vbplatform only_İdONLNdΩMûY†)<.°dONLNdørH{o(yHSEE ALSO
  1182. .°dONLNd»äã+BCmRestoreDefaults°dONLNdŸã˛)f on °dONLNd›˛ã)page °dONLNd‚ã))2-38ˇ⁄@ˇ ˇˇˇˇ@
  1183. ˇ·ˇ‚7^
  1184. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1185. (‡*2-32    )BQuickT@)ake 100 Device Driver Reference4^*¿¯
  1186. j*r¯4j*r¯ l*l˛
  1187. ˇ·ˇ‚7^ °dONLNd\*j|(f* CmEraseAsyncˇˇˇˇˇˇ(fÚ2,
  1188. Courier
  1189. .°dONLNd{láí(Ñl1pascal OSErr CmEraseAsync(CameraData cameraData, °dONLNdDâ¥ïÏ+H4CmAsyncCompletionRoutinePtr asyncCompletionRoutine);°dONLNdy°l≠®(™l
  1190. cameraData°dONLNdѰÆ≠ )BThe private data strl°dONLNdò° ≠!)]uctur>`°dONLNdù°!≠,)e r¿°dONLNd†°,≠]) eturned by ¿°dONLNd´°]≠•)1 CmOpenDriver¿°dONLNd∑°•≠ÿ)H  when your .°dONLNd¬≠Æπ0(∂Æapplication opens the QuickT‰`°dONLNdfi≠/πå)Åake 100 device driver‡°dONLNdÛ≠çπí)^. .°dONLNdˆΩl…(ΔlasyncCompletionRoutine.°dONLNd…Æ’≈+B AddrC¿°dONLNd…Δ’)ess of a callback r›¿°dONLNd$…’°)L"outine to call when all the picturÛ¿°dONLNdF…°’Ω)èes stor4@°dONLNdM…æ’Ê)
  1191. ed in the °dONLNdW’Æ·((fiÆinternal memory of the curr0¿°dONLNdr’)·‰){)ently connected camera have been erased. °dONLNdú˚*c(* DESCRIPTION
  1192. .°dONLNd®lÄ+BThe °dONLNd¨Ä») CmEraseAsync°dONLNd∏»0)H function is the asynchrR`°dONLNd–0ä)honous version of the R`°dONLNdÂä¥)ZCmEraseR`°dONLNdÏ¥Ô)* function and .°dONLNd˙l!(lis prÏİdONLNdˇ!1))ovided for applications that pursue a dif+¿°dONLNd(2!>)≥fer@°dONLNd+>![) ent thrD`°dONLNd2[!Ì)!ead of execution during the time °dONLNdS"l.ñ(+l
  1193. the picturF†°dONLNd]"ó.≥)+es storá °dONLNdd"≥.)ed in the camera ar… °dONLNdw".K)Te being erased. °dONLNdà4l@)(=l(When the operation completes, the QuickT°dONLNd∞4)@ê)Ωake 100 driver calls the .°dONLNd…AlM¸(JlCmAsyncCompletionRoutine°dONLNd·A¸MF)ê supplied as the °dONLNdÚAFM )JasyncCompletionRoutine°dONLNdA MÃ)Ñ °dONLNd    NlZJ(Wl3parameter to this function (see the description of °dONLNd<NJZ⁄)fiCmAsyncCompletionRoutine°dONLNdTN⁄ZË)ê on .°dONLNdX[lgÉ(dlpage Z‡°dONLNd][Ñgñ)2-33Æ¿°dONLNda[ñgõ)).°dONLNddmlyá(vlFor Wj†°dONLNdimáy
  1194. )indows applications, the addr`°dONLNdÜm y`)Ñess of the callback ré¿°dONLNdõm`yË)Uoutine handed to this function .°dONLNd∫zlÜ∂(Élmust be the one rR`°dONLNdÀz∂Ü)Jeturned by the W≈¿°dONLNd€zÜK)Mindows function ≈¿°dONLNdÎzKÜ´)HMakeProcInstance≈¿°dONLNd˚z´ÜÆ)`.
  1195. ï*£¯4ï*¢¯.°dONLNd˝ïlùã(õlIMPORTİdONLNdïãùõ)ANT
  1196. ˇ·ˇ‚7^
  1197. °dONLNd†l¨h(©l8Applications should not attempt to call any other QuickTY¿°dONLNd?†h¨©)¸ake 100 driver °dONLNdN¨l∏Ç(µlcontr>İdONLNdS¨É∏7)*ol functions including this function befor ¿°dONLNd}¨8∏ï)µe the application-defi∞†°dONLNdì¨ï∏®)]ned .°dONLNdó∏lƒª(¡lcallback function °dONLNd©∏ªƒK)OCMAsyncCompletionRoutine°dONLNd¡∏Kƒï)ê is called by the .°dONLNd”ƒl–å(ÕlQuickTÄİdONLNdŸƒå– ) ake 100 driveru °dONLNdÁƒ –Ã)>.,Zapf Dingbatsı °dONLNdÈ«—œÿ)s
  1198.  °dONLNd̓Ÿ–€) .°dONLNdÏ’l·w(filWÛ`°dONLNdÌ’v·#)
  1199. &indows applications cannot cancel the Û`°dONLNd’#·k)≠ CmEraseAsyncÛ`°dONLNd’k·¬)H function by calling °dONLNd4‚lÓ(ÎlCmCancelAsyncOperation°dONLNdJ‚Óı)Ñ. .°dONLNdM    *D(*RESULëİdONLNdR    Dh)T CODES
  1200. .°dONLNdZl"¸+( Upon successful completion, the °dONLNdz¸"D)ê CmEraseAsync°dONLNdÜD"p)H  function rR`°dONLNdëp"ç),eturns R`°dONLNdòç"´)noErrï°dONLNdù™"Ø). ˇz@ˇ ˇˇˇˇ@
  1201. ˇ·ˇ‚7^
  1202. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1203. , (‡2-334^H¿°dONLNd\äh≠(eä    If an errÖ°dONLNd    \≠h)#or is detected, the value rù†°dONLNd$\h¶)o eturned is one of the following:,
  1204. Courier.°dONLNdEiäuÃ(rä kCmAIPError., °dONLNdQi3uJ)©-6201°dONLNdWibuî)/
  1205. An asynchr<¿°dONLNdaiïuı)3onous operation is alr5İdONLNdwiıu )`eady °dONLNd|tbÄw(}bin prć°dONLNdÅtwÄÖ)ogrJİdONLNdÑtÜÄò)ess. .°dONLNdääãfi(àäkCmBadArgError., °dONLNdô3ãJ)©-6204°dONLNdübãÒ)/ Parameter is or contains an addr‰ °dONLNdøÒã )èess of °dONLNdΔäbñø(ìban invalid data item. .°dONLNd›ïä°ÿ(ûäkCmCantCancel.°dONLNdÏïb°w)ÿCurrU¿°dONLNdïw°Í)ently outstanding asynchr√ °dONLNd    ïͰ)sonous °dONLNd†b¨Ò(©boperation cannot be canceled. W~@°dONLNd.†Ò¨)èindows °dONLNd5´b∑û(¥bplatform only_İdONLNdB´û∑£)<. .°dONLNdE∂ä¬Í(øäkCmNoMemoryError., °dONLNdV∂3¬J)©-6209°dONLNd\∂b¬Ù)/ System failed to allocate memory=`°dONLNd|∂Ù¬˘)í. °dONLNd~¡bÕl( bWÛ`°dONLNd¡kÕÀ)    indows platform only1‡°dONLNdì¡ÀÕ–)`. .°dONLNdñÃäÿ(’äkCmNotConnectedError., °dONLNd´Ã3ÿJ)©-6208°dONLNd±Ãbÿi)/A∫†°dONLNd≤Ãiÿ
  1206. )$ connection with the camera has not °dONLNd÷◊b„ó(‡b been made. .°dONLNd‚‚äÓ‰(ÎäkCmNotOpenError.∏¿°dONLNdÚ‚3ÓE)©-621°dONLNdˆ‚EÓJ)1°dONLNd¯‚bÓñ)
  1207. The QuickTº@°dONLNd‚ïÓ)3ake 100 driver has not been °dONLNdÌb˘ë(ˆb initialized.°dONLNd+Ho(HSEE ALSO
  1208. .°dONLNd4ä++BCmAsyncCompletionRoutine°dONLNdL+d)ê, described next; °dONLNd^d+Ë)JCmCancelAsyncOperation°dONLNdtË+ˆ)Ñ on °dONLNdx,ä8¢(5äpage °dONLNd},¢8µ)2-34°dONLNdÅ,µ8∫); °dONLNdÉ,∫8‰)CmErase°dONLNdä,‰8Ú)* on °dONLNdé,Ú8
  1209. )page °dONLNdì,
  1210. 8)2-31°dONLNdó,8"); °dONLNdô,"8é)CmTakePictureAsync°dONLNd´,é8ú)l on °dONLNdØ,ú8¥)page °dONLNd¥,¥8«)2-62°dONLNd∏,«8Ã); °dONLNd∫9äE(BäCmRestoreDefaults°dONLNdÀ9E˛)f on °dONLNdœ9˛E)page °dONLNd‘9E))2-38
  1211. uH~4vH} wHw
  1212. ˇ·ˇ‚7^ .°dONLNdŸhHvÍ(rHCmAsyncCompletionRoutineˇˇˇˇˇˇ(r2
  1213. .°dONLNdÛáäì\(êä#typedef  void (CallbackProc)(void);°dONLNdïä°º*3typedef CallbackProc* CmAsyncCompletionRoutinePtr; .°dONLNdKΩHΔÅ(ƒH DESCRIPTION
  1214. .°dONLNdW ä÷û+BThe °dONLNd[ û÷.)CmAsyncCompletionRoutine°dONLNds .÷h)ê completion rR`°dONLNdÄ h÷˙):!outine enables an application to .°dONLNd°◊ä„ç(‡ärE°dONLNd¢◊é„√) eceive notifiü °dONLNdØ◊√„k)5&cation of the completion of an asynchrF °dONLNd’◊l„)©!onous operation. The application .°dONLNdˆ‰äî(ÌäprR`°dONLNd¯‰î·)
  1215. ovides one or mor$¿°dONLNd    ‰·T)Me implementations of the $¿°dONLNd"‰T‰)sCmAsyncCompletionRoutine$¿°dONLNd:‰‰ )ê
  1216.  function .°dONLNdDÒä˝·(˙äand passes the addrI¿°dONLNdWÒ‚˝—)X8ess of the function as the last parameter to the asynchr釰dONLNdèÒ—˝Ó)Ôonous .°dONLNdï˛ä
  1217. ¥(ä
  1218. functions °dONLNdü˛¥
  1219. D)*CmGetThumbnailImageAsync°dONLNd∑˛D
  1220. U)ê (WÛ`°dONLNd∫˛T
  1221. æ)indows platform only), °dONLNd— ä(äCmGetFullSizeImageAsync°dONLNdË %)ä (WÛ`°dONLNdÎ $é)indows platform only), °dONLNdä$ˆ(!äCmTakePictureAsync°dONLNdˆ$)l, and °dONLNd$V) CmEraseAsync°dONLNd'V$[)H. .°dONLNd**ä6(3äWhen any of these asynchrû`°dONLNdC*6ä)wonous functions completes its rÕ¿°dONLNdb*ä6ı)âespective operation, the °dONLNd{7äC™(@äQuickTÄİdONLNdÅ7™C;) #ake 100 driver calls the callback r‡°dONLNd§7<C])íoutine. 
  1222. RH`4RH_    °dONLNd≠Pä[ù(XäNote
  1223. ˇ·ˇ‚7^
  1224. °dONLNd≤]äi•*For Wj†°dONLNd∑]•i()indows applications, the addr`°dONLNd‘])i~)Ñess of the callback ré¿°dONLNdÈ]~iÃ)Uoutine handed to °dONLNd˙iäu∫(rä
  1225. an asynchruİdONLNdi∫uK)0 onous function must be the one r‚‡°dONLNd$iKuò)ëeturned by the W܇°dONLNd4iòuª)Mindows .°dONLNd;uäÅ∞(~ä    function °dONLNdDu∞Å)&MakeProcInstance°dONLNdTuÅ)`.,Zapf Dingbats.°dONLNdVxÄ)u
  1226. °dONLNdXÜäí (èäThe method by which the asynchrȰdONLNdwÜ íø)ñ%onous call status and bytes transferr¿°dONLNdúÜ¿íÁ)†ed (wherܰdONLNd§ÜÁíÓ)'e °dONLNd¶ìäüΔ(úäapplicable) aró¿°dONLNd¥ìΔü◊)<e pr®Ä°dONLNd∏ì◊üT)ovided to the application dif$@°dONLNd’ìUü )~fers for the host platforms.°dONLNdÚ•ä±µ(Æä    For the W»°dONLNd˚•µ±)+indows platform:ˇ|@ˇ ˇˇˇˇ@
  1227. ˇ·ˇ‚7^
  1228. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1229. (‡*2-34    )BQuickT@)ake 100 Device Driver Reference4^*¿¯
  1230. .°dONLNd\lhÄ(elThe ,
  1231. Courier°dONLNd\ÄhŒ)gsAsyncStatus°dONLNd\Œhr)N% global variable contains the value rR`°dONLNd6\rh”)§eturned by the synchr$¿°dONLNdK\”hÌ)aonous .°dONLNdQiluÔ(rlversion of each of the asynchrÓ@°dONLNdoiÔu:)Éonous functions. .°dONLNdÅ{láÄ(ÑlThe °dONLNdÖ{Äá‘)gulAsyncNBytes°dONLNdì{‘á¶)T1 global variable is valid only for the functions °dONLNdƒàlî¸(ëlCmGetThumbnailImageAsync°dONLNd‹à¸î)ê and °dONLNd·àîõ)CmGetFullSizeImageAsync°dONLNd¯àõîÈ)ä and contains the .°dONLNd
  1232. ïl°E(ûl1number of bytes that have actually been transferrœ@°dONLNd;ïE°ö)Ÿed to the image buf°dONLNdNïõ°„)Vfer allocated for °dONLNd`¢lÆû(´lthose calls. 
  1233. º* ¯4Ω* ¯    °dONLNdnªlΔ*Note
  1234. ˇ·ˇ‚7^
  1235. .°dONLNds»l‘
  1236. *#The values of the global variables °dONLNdñ»
  1237. ‘X)ûgsAsyncStatus°dONLNd£»X‘m)N and °dONLNd®‘l‡¿(›lgulAsyncNBytes°dONLNd∂‘¿‡Ã)T arR`°dONLNdπ‘Çv) &e valid only during the time that the °dONLNdfl‡lϸ(ÈlCmAsyncCompletionRoutine°dONLNd˜‡¸Ï\)ê function is called in rR`°dONLNd‡\Ïù)`esponse to the .°dONLNdÏl¯€(ılcompletion of an asynchr`°dONLNd6Ï‹¯&)ponous operation.,Zapf Dingbatsƒ`°dONLNdGÔ+˜1)Ou
  1238. °dONLNdI˝l    Í(lFor the Macintosh platform: ò†°dONLNde˝Í    $)~A5 globals ar懰dONLNdr˝$    ´):e saved into a long data type fi    @°dONLNdí˝¨    ◊)à eld in the ˇ˛¬*.°dONLNdù
  1239. l¥(l CmCameraDataˇˇñ°dONLNd©
  1240. ¥¡)H str°dONLNd≠
  1241. ¬ÿ)uctur‘n°dONLNd≤
  1242. ◊ò),e when the driver is initially opened. The fU^°dONLNdfi
  1243. ôÒ)¬ield is located beforÈ˰dONLNdÛ
  1244. Ò˜)Xe .°dONLNdıl#Ã( lthe parameter block fi`°dONLNd Õ#X)a"eld, which is also in the data str솰dONLNd-X#o)ãucturİdONLNd2p#‚)e. When your completion °dONLNdJ$l0o(-lrE°dONLNdK$p0M)4outine is called, a pointer to the parameter block fi°dONLNdÄ$N0§)field can be found at ù@°dONLNdî$§0€)V A0 and the rt°dONLNd†$€0Ú)7esult °dONLNd¶1l=†(:l code in D0. îİdONLNd≤1†=¶)4YU°dONLNd≥1¶=Û)ou can access the ∂`°dONLNd≈1Û=è)M$A5 globals by subtracting 4 bytes fr£@°dONLNdÈ1è=≈)ú om the addrΔ†°dONLNdÙ1≈=fl)6ess in e†°dONLNd˚1‡=Ò)A0. °dONLNdW*`D(^*RESULëİdONLNdWD`h)T CODES
  1245. .°dONLNdflrt+(AÛ`°dONLNdfsrú)
  1246.  value of Û`°dONLNdfúr∫))noErrÛ`°dONLNdf∫r5) indicates that the asynchr≈¿°dONLNd8f5r‡){'onous function completed successfully; °dONLNd_slπ(|lotherwise, an errR`°dONLNdpsπfi)M    or occurr$¿°dONLNdysfiW)%ed and you should call the $¿°dONLNdîsW´)yCmGetErrorInfo$¿°dONLNd¢s´‚)T function for .°dONLNd∞Älå’(âladditional information. °dONLNd…ílû®*If the asynchr≥‡°dONLNd◊í®ûz)<.onous function was canceled by the user in a WAİdONLNdízûÍ)“indows application, then .°dONLNdül´•(®l the camera rR`°dONLNd*ü•´)9eturns the camera err$¿°dONLNd?ü´m)_or and detail code pair $¿°dONLNdWüm´¡)ikCmErAttention$¿°dONLNdeü¡´÷)T and °dONLNdj¨l∏fi(µlkCmErCommandAborted°dONLNd}¨fi∏)r
  1247.  when the °dONLNdá¨∏a)/CMGetErrorInfo°dONLNdï¨a∏µ)T function is called. °dONLNd´æl Ì(«lOn the Macintosh platform, °dONLNdΔæÌ )ÅPBKillIO°dONLNdŒæ _)0 is called. The °dONLNdfiæ_ °)B kCmdTimeOut°dONLNdÈæ° ÷)B  GeoPort errR`°dONLNdıæ÷ ˆ)5or and  °dONLNd˝Àl◊¿(‘lkCmCameraError°dONLNd À¿◊Ã)T arR`°dONLNdÀÃ◊◊) e r$¿°dONLNdÀ◊◊[) eturned, but no additional err˜ °dONLNd/ÀZ◊®)Éor detail codes ar…İdONLNdAÀ®◊≥)Ne rõ‡°dONLNdDÀ≥◊Ù) eturned to the °dONLNdSÿl‰¿(·lCmGetErrorInfo°dONLNdaÿ¿‰a)T& function. See the description of the °dONLNdáÿa‰µ)°CmGetErrorInfo°dONLNdïÿµ‰È)T function on .°dONLNd¢ÂlÒÉ(Ólpage Z‡°dONLNdßÂÑÒñ)2-48Æ¿°dONLNd´ÂñÒÔ) for details about errh °dONLNd¡ÂÒˇ)Zor r@°dONLNd≈ÂÒ;)eturn values. °dONLNd‘ *Q(*SEE ALSO
  1248. .°dONLNd›l%¸+BCmGetThumbnailImageAsync°dONLNdı¸%
  1249. )ê on °dONLNd˘
  1250. %")page °dONLNd˛"%5)2-56°dONLNd5%:), °dONLNd:%ƒ)CmGetFullSizeImageAsync°dONLNdƒ%“)ä on °dONLNd&l2Ñ(/lpage °dONLNd$&Ñ2ó)2-60°dONLNd(&ó2ú), °dONLNd*&ú2)CmTakePictureAsync°dONLNd<&2)l on °dONLNd@&2.)page °dONLNdE&.2A)2-62°dONLNdI&A2F), °dONLNdK&F2é) CmEraseAsync°dONLNdW&é2ú)H on °dONLNd[&ú2¥)page °dONLNd`&¥2«)2-32°dONLNdd&«2Ã), °dONLNdf3l?¿(<lCmGetErrorInfo°dONLNdt3¿?Œ)T on °dONLNdx3Œ?Ê)page °dONLNd}3Ê?˘)2-48°dONLNdÅ3˘?), and °dONLNdá3?ï)CmCancelAsyncOperation°dONLNdù3ï?ò)Ñ,°dONLNdû3ò?‹) described next 
  1251. o*x¯4p*w¯ q*q˛
  1252. ˇ·ˇ‚7^ .°dONLNdØb*pº(l*CmCancelAsyncOperationˇˇˇˇˇˇ(lÚ2
  1253. .°dONLNd«Ålç>(äl#pascal OSErr CmCancelAsyncOperation°dONLNdÚèÍõz+~(CameraData cameraData);°dONLNd ßl≥®(∞l
  1254. cameraData°dONLNd߯≥ )BThe private data strl°dONLNd*ß ≥!)]uctur>`°dONLNd/ß!≥,)e r¿°dONLNd2ß,≥]) eturned by ¿°dONLNd=ß]≥•)1 CmOpenDriver¿°dONLNdIß•≥ÿ)H  when your .°dONLNdT≥Æø0(ºÆapplication opens the QuickT‰`°dONLNdp≥/øå)Åake 100 device driver‡°dONLNdÖ≥çøí)^. ˇ @ˇ ˇˇˇˇ@
  1255. ˇ·ˇ‚7^
  1256. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1257. , (‡2-354^H¿°dONLNd\HeÅ(cH DESCRIPTION
  1258. ˇˇø\.°dONLNd jävù+BThe ,
  1259. Courierˇˇ>?\°dONLNdjûv")CmCancelAsyncOperationˇˇø\?\°dONLNd&j"vS)Ñ  function prêt°dONLNd2jSv∏)1ovides a method for WD°dONLNdGjπv)findows applications °dONLNd[wäÉ⁄(Ääto cancel either a °dONLNdnw⁄Éj)PCmGetThumbnailImageAsync°dONLNdÜwjÉπ)ê function call or a °dONLNdöÑäê(çäCmGetFullSizeImageAsync°dONLNd±ÑêÇ)ä function call that is currR`°dONLNdÃÑÇê÷)nently outstanding. .°dONLNd‡ñ䢫(üäThe callback r»¿°dONLNdÓñ«¢˜)= outine corr(İdONLNd˘ñ¯¢ˇ)1;esponding to the canceled operation is called by the QuickT! °dONLNd4ñˇ¢(üˇake .°dONLNd8£äØ—(¨ä100 driver beforR`°dONLNdH£—Ø)Ge this function r$¿°dONLNdY£Øî)Feturns. The global variable $¿°dONLNdu£îØ‚)}gsAsyncStatus$¿°dONLNdÇ£‚Ø˚)N that .°dONLNdà∞äºõ(πäcorr`°dONLNdå∞úº)esponds to the callback r˰dONLNd•∞º)l6outine for the canceled operation will contain the err‘İdONLNd€∞º)Ëor and ˇˇ≥2.°dONLNd‚Ωä…‘(Δädetail code pair ˇˇñôñ°dONLNdÛΩ‘…()JkCmErAttentionˇˇ≥2ôñ°dONLNdΩ(…<)T and ˇˇñˇ˙°dONLNdΩ<…Æ)kCmErCommandAbortedˇˇ≥2ˇ˙°dONLNdΩÆ…)r. See the description of °dONLNd2 ä÷ú(”äthe °dONLNd6 ú÷)CmGetErrorInfo°dONLNdD ÷$)T function on °dONLNdQ $÷<)4page °dONLNdV <÷O)2-48°dONLNdZ O÷´) for details about errR`°dONLNdp ´÷∫)\or r$¿°dONLNdt ∫÷Ù)eturn values.°dONLNdÇ‹äËÀ(ÂäThis function rR`°dONLNdë‹ÀËË)Aeturns R`°dONLNdò‹ËË6)kCmCantCancelR`°dONLNd•‹6˶)N if called while either a R`°dONLNdø‹¶ËÓ)p CmEraseAsyncR`°dONLNdÀ‹ÓË)H
  1260.  function °dONLNd’Èäı±(Úä
  1261. call or a °dONLNdflȱı)'CmTakePictureAsync°dONLNdÒÈıù)l function call is outstanding. 
  1262. H4H    .°dONLNdäù(
  1263. äNote
  1264. ˇ·ˇ‚7^
  1265. °dONLNdä:*)This function is available only for the WΔ‡°dONLNd?:Ü)∞indows platform.,Zapf Dingbatsb¿°dONLNdPåí)Ru
  1266. ∞¿°dONLNdQíî) °dONLNdS4H=b(;HRESULëİdONLNdX4b=Ü)T CODES
  1267. .°dONLNd`BäNû+(The °dONLNddBûN")CmCancelAsyncOperation°dONLNdzB"NN)Ñ  function rR`°dONLNdÖBNNk),eturns R`°dONLNdåBkNâ)noErrR`°dONLNdëBâN∏)  if the curr$¿°dONLNdùB∏N    )/ently outstanding .°dONLNdØOä[¨(Xäasynchr$ °dONLNd∂O≠[É)#0onous operation has successfully been canceled. °dONLNdÁaäm≠(jä    If an errÖ°dONLNda≠m)#or is detected, the value rù†°dONLNd am¶)o eturned is one of the following:.°dONLNd,näz“(wä kCmANIPError., °dONLNd9n3zJ)©-6203°dONLNd?nbzï)/
  1268. No asynchrhİdONLNdInïzÈ)3onous operation is °dONLNd\ybÖô(Çb outstanding..°dONLNdiÑäêÿ(çäkCmCantCancel.°dONLNdxÑbêw)ÿCurrU¿°dONLNd|ÑwêÍ)ently outstanding asynchr√ °dONLNdïÑÍê)sonous °dONLNdõèbõÁ(òboperation cannot be canceled. .°dONLNd∫öä¶“(£ä kCmCommError., °dONLNd«ö3¶J)©-6214°dONLNdÕöb¶i)/A∫†°dONLNdŒöi¶⁄) serial communication err∂`°dONLNdÁö⁄¶)q    or occurr≥@°dONLNdö¶)(ed..°dONLNdÙ•ä±(ÆäkCmNotConnectedError., °dONLNd    •3±J)©-6208°dONLNd•b±i)/A∫†°dONLNd•i±
  1269. )$ connection with the camera has not °dONLNd4∞bºó(πb been made. .°dONLNd@ªä«‰(ƒäkCmNotOpenError.∏¿°dONLNdPª3«E)©-621°dONLNdTªE«J)1°dONLNdVªb«ñ)
  1270. The QuickTº@°dONLNd`ªï«)3ake 100 driver has not been °dONLNd|Δb“ë(œb initialized.°dONLNdâÍHÛo(ÒHSEE ALSO
  1271. .°dONLNdí¯ä+BCmGetThumbnailImageAsync°dONLNd™¯()ê on °dONLNdƯ(@)page °dONLNd≥¯@S)2-56°dONLNd∑¯SX), °dONLNdπ¯X‚)CmGetFullSizeImageAsync°dONLNd–¯‚)ä on °dONLNd‘ä¢(äpage °dONLNdŸ¢µ)2-60°dONLNd›µ∫), °dONLNdfl∫&)CmTakePictureAsync°dONLNdÒ&4)l on °dONLNdı4L)page °dONLNd˙L_)2-62°dONLNd˛_d), °dONLNdd¨) CmEraseAsync°dONLNd ¨∫)H on °dONLNd∫“)page °dONLNd“Â)2-32°dONLNdÂÍ), °dONLNdä(äCmAsyncCompletionRoutine°dONLNd3()ê on °dONLNd7(@)page °dONLNd<@S)2-33°dONLNd@SU) 
  1272. NHW4OHV PHP
  1273. ˇ·ˇ‚7^ .°dONLNdBAHOØ(KHCmGetStdFeaturesˇˇˇˇˇˇ(K2
  1274. .°dONLNdT`äl»(iä5pascal OSErr CmGetStdFeatures(CameraData cameraData, °dONLNdënzŒ+~!CmStdFeaturesPtr stdFeaturesPtr, °dONLNd∫|à\*short length);°dONLNd…îä†Δ(ùä
  1275. cameraData°dONLNd‘îÆ))BThe private data strl°dONLNdËî)†?)]uctur>`°dONLNdÌî?†J)e r¿°dONLNdîJ†{) eturned by ¿°dONLNd˚î{†√)1 CmOpenDriver¿°dONLNdî√†ˆ)H  when your .°dONLNd†Ã¨N(©Ãapplication opens the QuickT‰`°dONLNd.†M¨™)Åake 100 device driver‡°dONLNdC†´¨∞)^. ˇ¸@ˇ ˇˇˇˇ@
  1276. ˇ·ˇ‚7^
  1277. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1278. (‡*2-36    )BQuickT@)ake 100 Device Driver Reference4^*¿¯,
  1279. Courier
  1280. .°dONLNd\lh¿(elstdFeaturesPtr.°dONLNdhÆtO+B $Pointer to a memory location to be fi≠‡°dONLNd4hOt™)°lled with the standarF°dONLNdIh´tÕ)\d featur¿°dONLNdQhŒtı)#
  1281. es of the °dONLNd[tÆÄ(}Æunderlying device driver:†°dONLNdstÄ)n..°dONLNduÑlêê(çllengthˇˇ~@°dONLNd|ÑÆêı)BLength of the arÕ °dONLNdåÑıêN)Gea pointed to by the ˇ˛z¿D`°dONLNd°ÑOê£)ZstdFeaturesPtrˇˇ~@D`°dONLNdØÑ£ê‘)T
  1282.  parameter@°dONLNdπÑ‘ê¯)1
  1283. . This is .°dONLNd√êÆúú(ôÆ6the length in bytes of the amount of information you r˝¿°dONLNd˘êúú≥)Óequir°dONLNd˛ê¥ú¬)e frwİdONLNdê¬ú„)om the .°dONLNd    úÆ®¸(•ÆCmStdFeatures°dONLNdú¸®
  1284. )N strl°dONLNdú
  1285. ® )uctur>`°dONLNdú ®ç)e, which is described on >`°dONLNd8ú箕)mpage >`°dONLNd=ú•®∏)2-10>`°dONLNdAú∏®Ω). .°dONLNdD¡* e(»*  DESCRIPTION
  1286. .°dONLNdQœl€Ä+BThe °dONLNdUœÄ€‡)CmGetStdFeatures°dONLNdeœ‡€ )`  function rR`°dONLNdpœ €⁄),.etrieves the version number of the underlying .°dONLNdû‹lËå(ÂlQuickTÄİdONLNd§‹åË) ake 100 device driver or W;‡°dONLNdæ‹Ë>)v indows DLL. 
  1287. ˆ*¯4˜*¯°dONLNdÀ˜lˇã(˝lIMPORTİdONLNd—˜ãˇõ)ANT
  1288. ˇ·ˇ‚7^
  1289. .°dONLNd’là( lIf the °dONLNd‹à¨)length°dONLNd‚¨X)$( parameter is less than the size of the °dONLNd
  1290. X¶)¨CmStdFeatures°dONLNd¶®)N ˇˇ^ÿ°dONLNdlè(ldata str ÿ°dONLNd è•)#ucturù8°dONLNd%•ø)e, the ˇ˛àZ˰dONLNd,¿ )CmGetStdFeaturesˇˇ^ÿZ˰dONLNd< N)`  function trò°dONLNdHO∞)/uncates the data that °dONLNd^l&z(#lit rR`°dONLNdbz&π)eturns beyond R`°dONLNdpπ&›)?lengthR`°dONLNdv›&)$ bytes specifiR`°dONLNdÑ&%):ed.,Zapf Dingbats.R`°dONLNdà*%1)s
  1291. .u`°dONLNdâ1&3) 
  1292. 3*A¯44*A¯    .°dONLNdã2l=(:lNote
  1293. ˇ·ˇ‚7^
  1294. ˇˇ’ö.°dONLNdê?lK*The ˇˇÄŒUö°dONLNdî?ÄK§)lengthˇˇ’öUö°dONLNdö?§KP)$' parameter exists primarily for a futur)ñ°dONLNd¡?PK∞)¨e enhancement to the .°dONLNd÷KlW∑(Tlnumber of feature¿°dONLNdÊK∑W<)K es available to the application.È °dONLNdNAVG)äu
  1295. 7 °dONLNdKHWJ) °dONLNd
  1296. p*yD(w*RESULëİdONLNdpDyh)T CODES
  1297. .°dONLNd~lä¸+( Upon successful completion, the °dONLNd7~¸ä\)êCmGetStdFeatures°dONLNdG~\äà)`  function rR`°dONLNdR~àä•),eturns R`°dONLNdY~•ä√)noErrR`°dONLNd^~√äÍ)     and the ˇˇ®°dONLNdgãlóv(îlarR`°dONLNdiãvó–)
  1298. ea pointed to by the ˇ˛¯0ö∞°dONLNd~ã–ó$)ZstdFeaturesPtrˇˇ®ö∞°dONLNdåã$óg)T parameter is fi퇰dONLNdúãhó…)Dlled with the standar]p°dONLNd±ã óÌ)bd featur◊‡°dONLNdπãÌó˜)#es .°dONLNdºòl§ç(°ldata strº °dONLNdƒòç§§)!ucturB°dONLNd…ò•§6)!e of the underlying device driver̰dONLNdÍò5§:)ê. °dONLNdÌ™l∂è(≥l    If an errÖ°dONLNdˆ™è∂˛)#or is detected, the value rù†°dONLNd™˛∂à)o eturned is one of the following:.°dONLNd2∑l√Æ(¿l kCmAIPError., °dONLNd>∑√,)©-6201°dONLNdD∑D√v)/
  1299. An asynchr<¿°dONLNdN∑w√◊)3onous operation is alr5İdONLNdd∑◊√Ó)`eady °dONLNdi¬DŒY(ÀDin prć°dONLNdn¬YŒg)ogrJİdONLNdq¬hŒË)ess. Macintosh platform onlyS °dONLNdç¬ÁŒÏ). .°dONLNdêÕlŸ¿(÷lkCmBadArgError., °dONLNdüÕŸ,)©-6204°dONLNd•ÕDŸ”)/ Parameter is or contains an addr‰ °dONLNd≈Õ”ŸÓ)èess of °dONLNdÃÿD‰°(·Dan invalid data item. .°dONLNd„„lÔ¥(Ïl kCmCommError., °dONLNd„Ô,)©-6214°dONLNdˆ„DÔK)/A∫†°dONLNd˜„KÔº) serial communication err∂`°dONLNd„ºÔ‰)q    or occurr≥@°dONLNd„‰ÔÛ)(ed. °dONLNdÓD˙N(˜DWÛ`°dONLNdÓM˙≠)    indows platform only1‡°dONLNd2Ó≠˙≤)`. .°dONLNd5˘lÃ(lkCmNoMemoryError., °dONLNdF˘,)©-6209°dONLNdL˘D÷)/ System failed to allocate memory=`°dONLNdl˘÷€)í. °dONLNdnDN(DWÛ`°dONLNdoM≠)    indows platform only1‡°dONLNdÉ≠≤)`. .°dONLNdÜl‰(lkCmNotConnectedError., °dONLNdõ,)©-6208°dONLNd°DK)/A∫†°dONLNd¢KÏ)$ connection with the camera has not °dONLNdΔD&É(#D been made. W°dONLNd“É&„)?indows platform onlyWİdONLNdÊ‚&Á)_. .°dONLNdÈ%l1Δ(.lkCmNotOpenError.∏¿°dONLNd˘%1')©-621°dONLNd˝%'1,)1°dONLNdˇ%D1x)
  1300. The QuickTº@°dONLNd    %w1Ú)3ake 100 driver has not been °dONLNd%0D<u(9Dinitialized. °dONLNd3T*]Q([*SEE ALSO
  1301. .°dONLNd<blnÃ+BCmGetProductInfo°dONLNdLbÃn)`, described next; °dONLNd^bnj)JCmGetErrorInfo°dONLNdlbjnx)T on °dONLNdpbxnê)page °dONLNdubên£)2-48°dONLNdyb£n•) ˇ≤@ˇ ˇˇˇˇ@
  1302. ˇ·ˇ‚7^
  1303. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1304. , (‡2-374^H¿
  1305. jHr4jHr lHl
  1306. ˇ·ˇ‚7^ °dONLNd\Hj±(fHCmGetProductInfoˇˇˇˇˇˇ(f2,
  1307. Courier
  1308. .°dONLNd{äá»(Ñä5pascal OSErr CmGetProductInfo(CameraData cameraData, °dONLNdOâï¬+~CmProductInfoPtr productInfo); °dONLNdo°ä≠Δ(™ä
  1309. cameraData°dONLNdz°Ã≠))BThe private data strl°dONLNdé°)≠?)]uctur>`°dONLNdì°?≠J)e r¿°dONLNdñ°J≠{) eturned by ¿°dONLNd°°{≠√)1 CmOpenDriver¿°dONLNd≠°√≠ˆ)H  when your .°dONLNd∏≠ÃπN(∂Ãapplication opens the QuickT‰`°dONLNd‘≠Mπ™)Åake 100 device driver‡°dONLNdÈ≠´π∞)^. .°dONLNdÏΩä…Ã(Δä productInfo.°dONLNd¯…Ã’„+B AddrC¿°dONLNd¸…‰’7)ess of a memory ar~†°dONLNd…7’™)Sea to which this function rfi‡°dONLNd)…™’‚)seturns the próİdONLNd6…„’˛)9oduct .°dONLNd<’÷(fiÃinformation, a °dONLNdK’·])CCmProductInfo°dONLNdX’]·É)N     data strl°dONLNda’É·ô)&uctur>`°dONLNdf’ô·¯)e, for the camera curr¿°dONLNd|’¯·)_ently .°dONLNdÇ·ÃÌ˝(Íà connected. °dONLNdéHÅ(H DESCRIPTION
  1310. .°dONLNdöä û+BThe °dONLNdûû ˛)CmGetProductInfo°dONLNdÆ˛ *)`  function rR`°dONLNdπ* Y), eturns the R`°dONLNdƒY ß)/CmProductInfoR`°dONLNd—ß Õ)N     data str>`°dONLNd⁄Õ „)&uctur¿°dONLNdfl„ Ó)e r„ °dONLNd‚Ì )
  1311. elated °dONLNdÈ!ä-∏(*ä to the currR`°dONLNdÙ!∏-õ).3ently connected camera. See the description of the R`°dONLNd'!õ-È)„CmProductInfoR`°dONLNd4!È-)N data .°dONLNd:.ä:ï(7ästrfi°dONLNd=.ï:¨) ucturc‡°dONLNdB.≠:¬)e on t`°dONLNdG.¬:Ÿ)page O@°dONLNdL.⁄:Ï)2-12£ °dONLNdP.Ï:Ò). °dONLNdSUH^b(\HRESULëİdONLNdXUb^Ü)T CODES
  1312. .°dONLNd`bän+(Upon successful completion, °dONLNd|bnh)~CmGetProductInfo°dONLNdåbhnn)` rR`°dONLNdébnnã)eturns R`°dONLNdïbãn©)noErrR`°dONLNdöb©n⁄)  and the ar$¿°dONLNd•b⁄n )1 ea pointed °dONLNd∞oä{¢(xäto by °dONLNd∂o¢{‰) productInfo°dONLNd¡o‰{)B contains the °dONLNdœo{m);CmProductInfo°dONLNd‹om{y)N prR`°dONLNdfloy{Ô) oduct information data str>`°dONLNd˘oÔ{)vuctur¿°dONLNd˛o{ )e ˇˇÉðdONLNd|äà
  1313. (Öäparticular to the camera curraê°dONLNd|
  1314. àΔ)Ä,ently connected. See the description of the ˇ˛ãd¸$°dONLNdI|Δà)ºCmProductInfoˇˇÉø$°dONLNdV|à)N .°dONLNdWâäï´(íädata strº °dONLNd_â´ï¬)!ucturB°dONLNddâ√ïÿ)e on RİdONLNdiâÿïÔ)page -`°dONLNdnâï)2-12Å@°dONLNdrâï). °dONLNduõäß≠(§ä    If an errÖ°dONLNd~õ≠ß)#or is detected, the value rù†°dONLNdôõß¶)o eturned is one of the following:.°dONLNd∫®ä¥Ã(±ä kCmAIPError., °dONLNdΔ®3¥J)©-6201°dONLNdîb¥î)/
  1315. An asynchr<¿°dONLNd÷®ï¥ı)3onous operation is alr5İdONLNdÏ®ı¥ )`eady °dONLNdÒ≥bøw(ºbin prć°dONLNdˆ≥wøÖ)ogrJİdONLNd˘≥Üøò)ess. .°dONLNdˇæä fi(«äkCmBadArgError., °dONLNdæ3 J)©-6204°dONLNdæb Ò)/ Parameter is or contains an addr‰ °dONLNd4æÒ  )èess of °dONLNd;…b’ø(“ban invalid data item. .°dONLNdR‘ä‡fi(›äkCmCameraError., °dONLNda‘3‡J)©-6200°dONLNdg‘b‡p)/ErrS`°dONLNdj‘p‡˚) or detected by the camera. Call .°dONLNdäflbÎ∂(ËbCmGetErrorInfo°dONLNdòfl∂Îπ)T.°dONLNdöÍäˆ(ÛäkCmCameraNotFoundError., °dONLNd±Í3ˆJ)©-6206°dONLNd∑Íbˆ)/&Device connected to the port is not a °dONLNd›ıbÇ* QuickTÄİdONLNd„ıÇ˚) ake 100 camera. Macintosh °dONLNd˝b û(    bplatform only_İdONLNd
  1316. û £)<. .°dONLNd ä“(ä kCmCommError., °dONLNd 3J)©-6214°dONLNd  bi)/A∫†°dONLNd! i⁄) serial communication err∂`°dONLNd: ⁄)q    or occurr≥@°dONLNdC )(ed. °dONLNdGb"l(bWÛ`°dONLNdHk"À)    indows platform only1‡°dONLNd\À"–)`. .°dONLNd_!ä-Í(*äkCmNoMemoryError., °dONLNdp!3-J)©-6209°dONLNdv!b-Ù)/ System failed to allocate memory=`°dONLNdñ!Ù-˘)í. °dONLNdò,b8l(5bWÛ`°dONLNdô,k8À)    indows platform only1‡°dONLNd≠,À8–)`. .°dONLNd∞7äC(@äkCmNotConnectedErrorˇˇ›î, ˇ»°dONLNd≈73CJ)©-6208.°dONLNdÀ7bCi)/A∫†°dONLNdÃ7iC
  1317. )$ connection with the camera has not °dONLNdBbNó(Kb been made. .°dONLNd¸MäY‰(VäkCmNotOpenError.∏¿°dONLNd M3YE)©-621°dONLNdMEYJ)1°dONLNdMbYñ)
  1318. The QuickTº@°dONLNdMïY)3ake 100 driver has not been °dONLNd8Xbdì(abinitialized. .°dONLNdFcäoÍ(läkCmProtocolError., °dONLNdWc3oJ)©-6212°dONLNd]cbok)/PrN†°dONLNd_cloñ)
  1319.  
  1320. otocol errK`°dONLNdicño
  1321. )*or during communication °dONLNdÅnbzô(wb with QuickTS†°dONLNdånôzÎ)7ake 100 camera. W @°dONLNdùnÎz)Rindows °dONLNd§ybÖû(Çbplatform only_İdONLNd±yûÖ£)<. °dONLNd¥ûHßo(•HSEE ALSO
  1322. .°dONLNdΩ´ä∑Í+BCmGetStdFeatures°dONLNdÕ´Í∑¯)` on °dONLNd—´¯∑)page °dONLNd÷´∑#)2-35°dONLNd⁄´#∑(), °dONLNd‹´(∑|)CmGetErrorInfo°dONLNdÍ´|∑ä)T on °dONLNdÓ´ä∑¢)page °dONLNdÛ´¢∑µ)2-48°dONLNd˜´µ∑∑) ˇ“@ˇ ˇˇˇˇ@
  1323. ˇ·ˇ‚7^
  1324. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1325. (‡*2-38    )BQuickT@)ake 100 Device Driver Reference4^*¿¯
  1326. j*r¯4j*r¯ l*l˛
  1327. ˇ·ˇ‚7^ °dONLNd\*jï(f*CmRestoreDefaultsˇˇˇˇˇˇ(fÚ2,
  1328. Courier
  1329. .°dONLNd{lá∞(Ñl6pascal OSErr CmRestoreDefaults(CameraData cameraData);°dONLNdJìlü®*
  1330. cameraData°dONLNdUìÆü )BThe private data strl°dONLNdiì ü!)]uctur>`°dONLNdnì!ü,)e r¿°dONLNdqì,ü]) eturned by ¿°dONLNd|ì]ü•)1 CmOpenDriver¿°dONLNdàì•üÿ)H  when your .°dONLNdìüÆ´0(®Æapplication opens the QuickT‰`°dONLNdØü/´å)Åake 100 device driver‡°dONLNdƒüç´í)^. °dONLNd«≈*Œc(Ã* DESCRIPTION
  1331. .°dONLNd””lflÄ+BThe °dONLNd◊”ÄflÊ)CmRestoreDefaults°dONLNdË”Êfl)f  function rR`°dONLNdÛ”fl”),-esets some of the characteristics of the curr$¿°dONLNd ””flÌ)¡ently .°dONLNd&‡lÏö(ÈlGconnected camera to their factory settings. The characteristics that ara@°dONLNdm‡öÏ•(Èöe ro‡°dONLNdp‡•Ïı) eset to the factory °dONLNdÑÌl˘ô(ˆl settings ar÷@°dONLNdèÌô˘†)-e     °dONLNdìl~(lItem°dONLNdò    @)ùDefault value
  1332. °dONLNdßl!ö(l
  1333. Image size°dONLNd≤!%)úHigh-r3 °dONLNd∏&!N)    esolution°dONLNd√ l,Ã()lImage width in pixels°dONLNdŸ ,)ú640°dONLNdfi+l7Õ(4lImage height in pixels°dONLNdı+7)ú480°dONLNd˙6lBü(?l
  1334. Flash mode°dONLNd6B6)ú    Automatic°dONLNdAlMÓ(JlHost interface timeout period°dONLNd.AM?)ú 2.55 seconds
  1335. Z*h¯4Z*g¯    °dONLNd;Xlc(`lNote
  1336. ˇ·ˇ‚7^
  1337. .°dONLNd@elqÑ*The c°dONLNdEeÑq⁄)amera name in the °dONLNdWe⁄q)V    ownerName°dONLNd`eq)6 fi°dONLNdceqG)     eld of the °dONLNdneGqè). CmCameraInfo°dONLNdzeèq©)H data .°dONLNdÄql}w(zlstrfi°dONLNdÉqw}é) ucturc‡°dONLNdàqè}¥)
  1338. e is not r! °dONLNdíqµ}j)&-everted to the factory setting by this call. ,Zapf DingbatsÌ °dONLNd¿to|u)∫u°dONLNd¬ó*†D(û*RESULëİdONLNd«óD†h)T CODES
  1339. .°dONLNdœ§l∞Í+(Upon successful completion, °dONLNdΧÍ∞P)~CmRestoreDefaults°dONLNd¸§P∞V)f rR`°dONLNd˛§V∞s)eturns R`°dONLNd§s∞ë)noErrï°dONLNd
  1340. §ê∞ï). .°dONLNd∂l¬è(øl    If an errÖ°dONLNd∂è¬˛)#or is detected, the value rù†°dONLNd1∂˛¬à)o eturned is one of the following:.°dONLNdR√lœÆ(Ãl kCmAIPError., °dONLNd^√œ,)©-6201°dONLNdd√Dœv)/
  1341. An asynchr<¿°dONLNdn√wœ◊)3onous operation is alr5İdONLNdÑ√◊œÓ)`eady °dONLNdâŒD⁄Y(◊Din prć°dONLNdéŒY⁄g)ogrJİdONLNdëŒh⁄z)ess. .°dONLNdóŸl¿(‚lkCmBadArgError., °dONLNd¶ŸÂ,)©-6204°dONLNd¨ŸD”)/ Parameter is or contains an addr‰ °dONLNdß”ÂÓ)èess of °dONLNd”‰D°(ÌDan invalid data item. .°dONLNdÍÔl˚¿(¯lkCmCameraError., °dONLNd˘Ô˚,)©-6200°dONLNdˇÔD˚R)/ErrS`°dONLNdÔR˚›) or detected by the camera. Call .°dONLNd"˙Dò(DCmGetErrorInfo°dONLNd0˙òõ)T.°dONLNd2l(lkCmCameraNotFoundError., °dONLNdI,)©-6206°dONLNdODÁ)/&Device connected to the port is not a °dONLNduDd* QuickTÄİdONLNd{d›) ake 100 camera. Macintosh °dONLNdïD'Ä($Dplatform only_İdONLNd¢Ä'Ö)<. .°dONLNd•&l2¥(/l kCmCommError., °dONLNd≤&2,)©-6214°dONLNd∏&D2K)/A∫†°dONLNdπ&K2º) serial communication err∂`°dONLNd“&º2‰)q    or occurr≥@°dONLNd€&‰2Û)(ed. °dONLNdfl1D=N(:DWÛ`°dONLNd‡1M=≠)    indows platform only1‡°dONLNdÙ1≠=≤)`. .°dONLNd˜<lHÃ(ElkCmNoMemoryError., °dONLNd<H,)©-6209°dONLNd<DH÷)/ System failed to allocate memory=`°dONLNd.<÷H€)í. °dONLNd0GDSN(PDWÛ`°dONLNd1GMS≠)    indows platform only1‡°dONLNdEG≠S≤)`. .°dONLNdHRl^‰([lkCmNotConnectedErrorˇˇ›î, ˇ»°dONLNd]R^,)©-6208.°dONLNdcRD^K)/A∫†°dONLNddRK^Ï)$ connection with the camera has not °dONLNdà]Diy(fD been made. .°dONLNdîhltΔ(qlkCmNotOpenError.∏¿°dONLNd§ht')©-621°dONLNd®h't,)1°dONLNd™hDtx)
  1342. The QuickTº@°dONLNd¥hwtÚ)3ake 100 driver has not been °dONLNd–sDu(|Dinitialized. .°dONLNdfi~läÃ(álkCmProtocolError., °dONLNdÔ~ä,)©-6212°dONLNdı~DäM)/PrN†°dONLNd˜~Näx)
  1343.  
  1344. otocol errK`°dONLNd~xäÏ)*or during communication °dONLNdâDï{(íD with QuickTS†°dONLNd$â{ïÕ)7ake 100 camera. W @°dONLNd5âÕï)Rindows °dONLNd<îD†Ä(ùDplatform only_İdONLNdIîĆÖ)<. ˇ≤@ˇ ˇˇˇˇ@
  1345. ˇ·ˇ‚7^
  1346. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1347. , (‡2-394^H¿°dONLNd\Heo(cHSEE ALSO,
  1348. Courier
  1349. .°dONLNd    jävÍ+BCmGetStdFeatures°dONLNdjÍv¯)` on °dONLNdj¯v)page °dONLNd"jv#)2-35°dONLNd&j#v(), °dONLNd(j(và)CmGetProductInfo°dONLNd8jàvñ)` on °dONLNd<jñvÆ)page °dONLNdAjÆv¡)2-37°dONLNdEj¡vΔ), °dONLNdGwäÉfi(ÄäCmSetOwnerName°dONLNdUwfiÉÏ)T on °dONLNdYwÏÉ)page °dONLNd^wÉ)2-40°dONLNdbwÉ), °dONLNddwÉp)CmSetFlashMode°dONLNdrwpÉ~)T on °dONLNdvw~Éñ)page °dONLNd{wñÉ©)2-42°dONLNdw©ÉÆ), °dONLNdÅwÆÉ)CmSetPictureMode°dONLNdëwÉ)` .°dONLNdíÑäêó(çäon F‡°dONLNdïÑòêØ)page !¿°dONLNdöÑ∞ê¬)2-41u†°dONLNdûѬêƒ) 
  1350. ¿H…4¡H» ¬H¬
  1351. ˇ·ˇ‚7^ °dONLNd†≥H¡¶(ΩHCmSetDateAndTzİdONLNd≠≥¶¡∫)^imeˇˇˇˇˇˇ(Ω2
  1352. .°dONLNd≤“äfi»(€ä5pascal OSErr CmSetDateAndTime(CameraData cameraData, °dONLNdԇϺ+~CmDateAndTimePtr dateAndTime);°dONLNd¯äΔ(ä
  1353. cameraData°dONLNd¯Ã))BThe private data strl°dONLNd-¯)?)]uctur>`°dONLNd2¯?J)e r¿°dONLNd5¯J{) eturned by ¿°dONLNd@¯{√)1 CmOpenDriver¿°dONLNdL¯√ˆ)H  when your .°dONLNdWÃN(Ãapplication opens the QuickT‰`°dONLNdsM™)Åake 100 device driver‡°dONLNdà´∞)^. .°dONLNdãä Ã(ä dateAndTime.°dONLNdó Ã,„+B AddrC¿°dONLNdõ ‰,7)ess of a memory ar~†°dONLNd≠ 7,)S5ea that contains the date and time to be set for the °dONLNd‚,Ã8fi(5ÃcurrذdONLNdÊ,fi8K)ently connected camera. °dONLNdˇRH[Å(YH DESCRIPTION
  1354. ˇˇïT.°dONLNd _äkù+BThe ˇ˛ø¸T°dONLNd_ûk˛)CmSetDateAndTimeˇˇïTT°dONLNd_˛k)`> function changes the date and time maintained by the camera. .°dONLNd^ÜHèb(çHRESULëİdONLNdcÜbèÜ)T CODES
  1355. .°dONLNdkìäüû+(The °dONLNdoìûü˛)CmSetDateAndTime°dONLNdì˛ü*)`  function rR`°dONLNdäì*üG),eturns R`°dONLNdëìGüe)noErrR`°dONLNdñìeü)( if the operation has been successfully .°dONLNdæ†ä¨Ω(©ä completed. °dONLNd ≤äæ≠*    If an errÖ°dONLNd”≤≠æ)#or is detected, the value rù†°dONLNdÓ≤æ¶)o eturned is one of the following:.°dONLNdøäÀÃ(»ä kCmAIPError., °dONLNdø3ÀJ)©-6201°dONLNd!øbÀî)/
  1356. An asynchr<¿°dONLNd+øïÀı)3onous operation is alr5İdONLNdAøıÀ )`eady °dONLNdF b÷w(”bin prć°dONLNdK w÷Ö)ogrJİdONLNdN Ü÷ò)ess. .°dONLNdT’ä·fi(fiäkCmBadArgError., °dONLNdc’3·J)©-6204°dONLNdi’b·Ò)/ Parameter is or contains an addr‰ °dONLNdâ’Ò· )èess of °dONLNdê‡bÏø(Èban invalid data item. .°dONLNdßÎä˜fi(ÙäkCmCameraError., °dONLNd∂Î3˜J)©-6200°dONLNdºÎb˜p)/ErrS`°dONLNdøÎp˜˚) or detected by the camera. Call .°dONLNdflˆb∂(ˇbCmGetErrorInfo°dONLNd̈∂π)T.°dONLNdÔä(
  1357. äkCmCameraNotFoundError., °dONLNd3J)©-6206°dONLNd b)/&Device connected to the port is not a °dONLNd2 bÇ* QuickTÄİdONLNd8 Ç˚) ake 100 camera. Macintosh °dONLNdRb#û( bplatform only_İdONLNd_û#£)<. .°dONLNdb"ä.“(+ä kCmCommError., °dONLNdo"3.J)©-6214°dONLNdu"b.i)/A∫†°dONLNdv"i.⁄) serial communication err∂`°dONLNdè"⁄.)q    or occurr≥@°dONLNdò".)(ed. °dONLNdú-b9l(6bWÛ`°dONLNdù-k9À)    indows platform only1‡°dONLNd±-À9–)`. .°dONLNd¥8äDÍ(AäkCmNoMemoryError., °dONLNd≈83DJ)©-6209°dONLNdÀ8bDÙ)/ System failed to allocate memory=`°dONLNdÎ8ÙD˘)í. °dONLNdÌCbOl(LbWÛ`°dONLNdÓCkOÀ)    indows platform only1‡°dONLNdCÀO–)`. .°dONLNdNäZ(WäkCmNotConnectedErrorˇˇ›î, ˇ»°dONLNdN3ZJ)©-6208.°dONLNd NbZi)/A∫†°dONLNd!NiZ
  1358. )$ connection with the camera has not °dONLNdEYbeó(bb been made. .°dONLNdQdäp‰(mäkCmNotOpenError.∏¿°dONLNdad3pE)©-621°dONLNdedEpJ)1°dONLNdgdbpñ)
  1359. The QuickTº@°dONLNdqdïp)3ake 100 driver has not been °dONLNdçob{ì(xbinitialized. .°dONLNdõzäÜÍ(ÉäkCmProtocolError., °dONLNd¨z3ÜJ)©-6212°dONLNd≤zbÜk)/PrN†°dONLNd¥zlÜñ)
  1360.  
  1361. otocol errK`°dONLNdæzñÜ
  1362. )*or during communication °dONLNd÷Öbëô(éb with QuickTS†°dONLNd·ÖôëÎ)7ake 100 camera. W @°dONLNdÚÖÎë)Rindows °dONLNd˘êbúû(ôbplatform only_İdONLNdêûú£)<. ˇ@ˇ ˇˇˇˇ@
  1363. ˇ·ˇ‚7^
  1364. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1365. (‡*2-40    )BQuickT@)ake 100 Device Driver Reference4^*¿¯°dONLNd\*eQ(c*SEE ALSO,
  1366. Courier
  1367. .°dONLNd    jlv¿+BCmSetOwnerName°dONLNdj¿v
  1368. )T, described next; °dONLNd)j
  1369. vj)JCmSetPictureMode°dONLNd9jjvx)` on °dONLNd=jxvê)page °dONLNdBjêv£)2-41°dONLNdFj£v®), °dONLNdHwlÉ¿(ÄlCmSetFlashMode°dONLNdVw¿ÉŒ)T on °dONLNdZwŒÉÊ)page °dONLNd_wÊɢ)2-42°dONLNdcw˘É˚) 
  1370. ≥*º¯4¥*ª¯ µ*µ˛
  1371. ˇ·ˇ‚7^ .°dONLNde¶*¥ï(∞*CmSetOwnerNameˇˇˇˇˇˇ(∞Ú2
  1372. .°dONLNdu≈l—ò(Œl2pascal OSErr CmSetOwnerName(CameraData cameraData,°dONLNdØ”Íflt+~BufferPtr* ownerName); °dONLNd«Îl˜®(Ùl
  1373. cameraData°dONLNd“ÎÆ˜ )BThe private data strl°dONLNdÊÎ ˜!)]uctur>`°dONLNdÎÎ!˜,)e r¿°dONLNdÓÎ,˜]) eturned by ¿°dONLNd˘Î]˜•)1 CmOpenDriver¿°dONLNdΕ˜ÿ)H  when your .°dONLNd˜Æ0(Æapplication opens the QuickT‰`°dONLNd,˜/å)Åake 100 device driver‡°dONLNdA˜çí)^. .°dONLNdDl¢(l    ownerName.°dONLNdNÆ≈+B AddrC¿°dONLNdRΔÖ)/ess of a character string (32 bytes) to be stor˘@°dONLNdÅÖË)øed in the camera. This °dONLNdòÆ+a((Æ(string is used as the owner name identifi√‡°dONLNd¡a+Ò)≥ cation for the camera. The name °dONLNd·+Æ7_(4Æ'has a maximum length of 26 characters. °dONLNd    Q*Zc(X* DESCRIPTION
  1374. .°dONLNd^ljÄ+BThe °dONLNd^Äj‘)CmSetOwnerName°dONLNd'^‘jé)T( function changes the owner name identifi°dONLNdP^éj⁄)∫cation of the currR`°dONLNdb^⁄jÙ)Lently °dONLNdhklw”(tlconnected camera. The °dONLNd~k”w    )g    ownerName°dONLNdák    wÚ)65 parameter points to an array of characters 32 bytes .°dONLNdºxlÑò(Ål in length. 
  1375. ì*°¯4ì*†¯°dONLNd»ìlõã*IMPORTİdONLNdŒìãõõ)ANT
  1376. ˇ·ˇ‚7^
  1377. °dONLNd“ûl™ÿ(ßlThe owner name identifi[İdONLNdÈûŸ™ã)m&cation must be exactly 32 bytes—no mor∫†°dONLNdû㙢)≤e, no °dONLNd™l∂á(≥lless. T·¿°dONLNd™Ü∂$) o accomodate mounting the QuickT©†°dONLNd<™$∂ñ)ûake 100 on the Macintosh °dONLNdU∂l¬©(ølIdescktop, the owner name limit is set at 26 characters. When setting the °dONLNdû¬lŒK* 2camera owner name to 26 characters or less, be sur– °dONLNd–¬KŒä)fle to use space .°dONLNdflŒl⁄œ(◊lcharacters to pad the °dONLNdıŒœ⁄)c    ownerName°dONLNd˛Œ⁄k)6 parameter to 32 bytes.,Zapf Dingbats.°dONLNd—pŸw)ks
  1378. .£°dONLNdŒw⁄y) ˇˇ‚⁄°dONLNdfllÎê(ËlThe curr5:°dONLNd!flëή)%?ent value for the owner name of the camera is contained in the ˇˇ®é∫L°dONLNd`fl®Îfi(Ë®    ownerNameˇˇ‚⁄∫L°dONLNdiflfiÎÊ)6 fiù&°dONLNdlflÁΘ)    eld °dONLNdpÏl¯â(ılof the °dONLNdwÏ⯗) CmCameraInfo°dONLNdÉÏ—¯˜)H     data strl°dONLNdåϘ¯)&uctur>`°dONLNdëϯz)e, which is described on >`°dONLNd™Ïz¯í)mpage >`°dONLNdØÏí¯•)2-14>`°dONLNd≥Ï•¯æ). The °dONLNdπ˘l¥(l CmCameraInfo°dONLNd≈˘¥⁄)H     data strl°dONLNdŒ˘⁄)&uctur>`°dONLNd”˘)
  1379. e can be r¿°dONLNd›˘z)(etrieved via a call to ¿°dONLNdÙ˘z‘)bCmGetCameraInfo¿°dONLNd˘‘Ÿ)Z. .°dONLNd lfl(lThe camera owner name r `°dONLNd fl‘)s:emains valid until the application issues another call to .°dONLNdWl$¿(!lCmSetOwnerName°dONLNde¿$√)T..°dONLNdg?*HD(F*RESULëİdONLNdl?DHh)T CODES
  1380. ˇˇ’ö.°dONLNdtLlX+(The ˇˇÄŒUö°dONLNdxLÄX‘)CmSetOwnerNameˇˇ’öUö°dONLNdÜL‘Xˇ)T  function r”.°dONLNdëLˇX)+eturns ˇˇÄŒ®»°dONLNdòLX:)noErrˇˇ’ö®»°dONLNdùL:Xz) if the identifi)ñ°dONLNd≠L{X¯)Acation has successfully been .°dONLNd Yle|(blstor9‡°dONLNdŒY}eå)ed. ˇÆ@ˇ ˇˇˇˇ@
  1381. ˇ·ˇ‚7^
  1382. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1383. , (‡2-414^H¿°dONLNd\äh≠(eä    If an errÖ°dONLNd    \≠h)#or is detected, the value rù†°dONLNd$\h¶)o eturned is one of the following:,
  1384. Courier.°dONLNdEiäuÃ(rä kCmAIPError., °dONLNdQi3uJ)©-6201°dONLNdWibuî)/
  1385. An asynchr<¿°dONLNdaiïuı)3onous operation is alr5İdONLNdwiıu )`eady °dONLNd|tbÄw(}bin prć°dONLNdÅtwÄÖ)ogrJİdONLNdÑtÜÄò)ess. .°dONLNdääãfi(àäkCmBadArgError., °dONLNdô3ãJ)©-6204°dONLNdübãÒ)/ Parameter is or contains an addr‰ °dONLNdøÒã )èess of °dONLNdΔäbñø(ìban invalid data item. .°dONLNd›ïä°fi(ûäkCmCameraError., °dONLNdÏï3°J)©-6200°dONLNdÚïb°p)/ErrS`°dONLNdıïp°˚) or detected by the camera. Call .°dONLNd†b¨∂(©bCmGetErrorInfo°dONLNd#†∂¨π)T.°dONLNd%´ä∑(¥äkCmCameraNotFoundError., °dONLNd<´3∑J)©-6206°dONLNdB´b∑)/&Device connected to the port is not a °dONLNdh∂b¬Ç* QuickTÄİdONLNdn∂Ǭ˚) ake 100 camera. Macintosh °dONLNdà¡bÕû( bplatform only_İdONLNdï¡ûÕ£)<. .°dONLNdòÃäÿ“(’ä kCmCommError., °dONLNd•Ã3ÿJ)©-6214°dONLNd´Ãbÿi)/A∫†°dONLNd¨Ãiÿ⁄) serial communication err∂`°dONLNd≈Ã⁄ÿ)q    or occurr≥@°dONLNdŒÃÿ)(ed. °dONLNd“◊b„l(‡bWÛ`°dONLNd”◊k„À)    indows platform only1‡°dONLNdÁ◊À„–)`. .°dONLNdÍ‚äÓÍ(ÎäkCmNoMemoryError., °dONLNd˚‚3ÓJ)©-6209°dONLNd‚bÓÙ)/ System failed to allocate memory=`°dONLNd!‚ÙÓ˘)í. °dONLNd#Ìb˘l(ˆbWÛ`°dONLNd$Ìk˘À)    indows platform only1‡°dONLNd8ÌÀ˘–)`. .°dONLNd;¯ä(äkCmNotConnectedErrorˇˇ›î, ˇ»°dONLNdP¯3J)©-6208.°dONLNdV¯bi)/A∫†°dONLNdW¯i
  1386. )$ connection with the camera has not °dONLNd{bó( b been made. .°dONLNdáä‰(äkCmNotOpenError.∏¿°dONLNdó3E)©-621°dONLNdõEJ)1°dONLNdùbñ)
  1387. The QuickTº@°dONLNdßï)3ake 100 driver has not been °dONLNd√b%ì("binitialized. .°dONLNd—$ä0Í(-äkCmProtocolError., °dONLNd‚$30J)©-6212°dONLNdË$b0k)/PrN†°dONLNdÍ$l0ñ)
  1388.  
  1389. otocol errK`°dONLNdÙ$ñ0
  1390. )*or during communication °dONLNd /b;ô(8b with QuickTS†°dONLNd/ô;Î)7ake 100 camera. W @°dONLNd(/Î;)Rindows °dONLNd/:bFû(Cbplatform only_İdONLNd<:ûF£)<. °dONLNd?^Hgo(eHSEE ALSO
  1391. .°dONLNdHläx‰+BCmGetCameraInfo°dONLNdWl‰xÚ)Z on °dONLNd[lÚx
  1392. )page °dONLNd`l
  1393. x)2-28°dONLNddlx"), °dONLNdfl"xÇ)CmSetPictureMode°dONLNdvlÇxÃ)`, described next; °dONLNdàyäÖfi(ÇäCmSetFlashMode°dONLNdñyfiÖÏ)T on °dONLNdöyÏÖ)page °dONLNdüyÖ)2-42°dONLNd£yÖ), °dONLNd•yÖp)CmGetErrorInfo°dONLNd≥ypÖ~)T on °dONLNd∑y~Öñ)page °dONLNdºyñÖ©)2-48°dONLNd¿y©Ö´) 
  1394. µHæ4∂HΩ ∑H∑
  1395. ˇ·ˇ‚7^ .°dONLNd¬®H∂≥(≤HCmSetPictureModeˇˇˇˇˇˇ(≤2
  1396. .°dONLNd‘«ä”»(–ä5pascal OSErr CmSetPictureMode(CameraData cameraData, °dONLNd’·™+~unsigned char pictureMode);°dONLNd-Ìä˘Δ(ˆä
  1397. cameraData°dONLNd8ÌÃ˘))BThe private data strl°dONLNdLÌ)˘?)]uctur>`°dONLNdQÌ?˘J)e r¿°dONLNdTÌJ˘{) eturned by ¿°dONLNd_Ì{˘√)1 CmOpenDriver¿°dONLNdkÌ√˘ˆ)H  when your .°dONLNdv˘ÃN(Ãapplication opens the QuickT‰`°dONLNdí˘M™)Åake 100 device driver‡°dONLNdߢ´∞)^. .°dONLNd™    äÃ(ä pictureMode.°dONLNd∂Ã!˘+B
  1398. The pictur%°dONLNd¿˙!a).e mode for the camera. °dONLNdÿ;HDÅ(BH DESCRIPTION
  1399. .°dONLNd‰HäTû+BThe °dONLNdËHûT˛)CmSetPictureMode°dONLNd¯H˛Të)`" function changes the attributes rR`°dONLNdHëTÈ)ìelated to the pictur$¿°dONLNd.HÈT)X
  1400. e mode of .°dONLNd8Uäaœ(^äthe camera curr凰dONLNdGUœaG)Eently connected. The pictur‡°dONLNdbUGa)x,e mode of the camera determines the type of °dONLNdébän§(käpicturÈ@°dONLNdîb§nA)%es that will be taken by the camera. .°dONLNd∫täÄ(}äThe possible values for the °dONLNd÷tÄH)| pictureMode°dONLNd·tHÄÜ)B parameter arR`°dONLNdÓtÜÄæ)>e as follows:°dONLNd¸Öäë∫(éäkCmCOLOR.°dONLNdÖÃë.)BThe subsequent picturı°dONLNdÖ.ëâ)bes taken shall be storR`°dONLNd0Öäë )\ed in full color °dONLNd@Ö ëÃ)@..°dONLNdBïä°¿(ûä    kCmCOLORQ.°dONLNdLïð.)BThe subsequent picturı°dONLNdaï.°´)bes taken shall be in full colorˆ‡°dONLNdÄï´°)}, but the size will be °dONLNdó°Ã≠œ(™ÃrE°dONLNdò°–≠)Keduced to one-quarter (320 by 240 pixels) of the default full size (640 by °dONLNd„≠Ãπˇ(∂Ã480 pixels). ˇ@ˇ ˇˇˇˇ@
  1401. ˇ·ˇ‚7^
  1402. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1403. (‡*2-42    )BQuickT@)ake 100 Device Driver Reference4^*¿¯
  1404. °dONLNd\lhô(el
  1405. The pictur%°dONLNd
  1406. \öhÚ).e mode attributes arö°dONLNd\Úh )Xe in ef@°dONLNd%\h⁄)fect until either the application makes another ˇˇ…$.°dONLNdViluú(rl call to the ,
  1407. Courierˇˇ[l€l°dONLNdbiúu¸)0CmSetPictureModeˇˇ…$€l°dONLNdri¸u˜)`: function to set new values, the application makes a call °dONLNd¨vlÇw(lto °dONLNdØvwÇ›) CmRestoreDefaults°dONLNd¿v›Ç)f, or the user prR`°dONLNd–vÇX)@esses the corr$¿°dONLNdfivXÇã); esponding r˜ °dONLNdÈväÇÒ)2esolution button on the .°dONLNdÉlèë(ålcamera. 
  1408. ù*´¯4û*´¯    °dONLNd
  1409. úlß*Note
  1410. ˇ·ˇ‚7^
  1411. °dONLNd©lµÉ*The rÄ¿°dONLNd©Éµ)"esolution attributes of images alr^`°dONLNd6©µ<)ë    eady stor ¿°dONLNd?©=µö))ed inside the camera ˇˇñp.°dONLNdTµl¡¥(ælprior to a call to ˇ˛√Pp0°dONLNdgµµ¡)ICmSetPictureModeˇˇñpp0°dONLNdwµ¡ )` arŸ°dONLNdzµ ¡@) e not afÿ@°dONLNdǵ@¡¢) fected by the function.,Zapf DingbatsˇˇäØ.õê°dONLNdö∏®¿Æ)hu
  1412. ˇˇñp.Èê°dONLNdõµÆ¡Ø) .°dONLNdù⁄*„D(·*RESULëİdONLNd¢⁄D„h)T CODES
  1413. °dONLNd™ËlÙ°+(If the specifi}‡°dONLNd∏Ë¢Ù/)6ed mode has successfully been rÙ‡°dONLNd◊Ë/ÙL)çegisterD°dONLNdfiËMÙ´)ed in the camera, the .°dONLNdÙılÃ(˛lCmSetPictureMode°dONLNdıï)`  function rR`°dONLNdı¯),eturns R`°dONLNdı3)noErrï°dONLNdı27). .°dONLNdlè(l    If an errÖ°dONLNd'è˛)#or is detected, the value rù†°dONLNdB˛à)o eturned is one of the following:.°dONLNdcl Æ(l kCmAIPError., °dONLNdo ,)©-6201°dONLNduD v)/
  1414. An asynchr<¿°dONLNdw ◊)3onous operation is alr5İdONLNdï◊ Ó)`eady °dONLNdöD+Y((Din prć°dONLNdüY+g)ogrJİdONLNd¢h+z)ess. .°dONLNd®*l6¿(3lkCmBadArgError., °dONLNd∑*6,)©-6204°dONLNdΩ*D6”)/ Parameter is or contains an addr‰ °dONLNd›*”6Ó)èess of °dONLNd‰5DA°(>Dan invalid data item. .°dONLNd˚@lL¿(IlkCmCameraError., °dONLNd
  1415. @L,)©-6200°dONLNd@DLR)/ErrS`°dONLNd@RL›) or detected by the camera. Call .°dONLNd3KDWò(TDCmGetErrorInfo°dONLNdAKòWõ)T.°dONLNdCVlb(_lkCmCameraNotFoundError., °dONLNdZVb,)©-6206°dONLNd`VDbÁ)/&Device connected to the port is not a °dONLNdÜaDmd* QuickTÄİdONLNdåadm›) ake 100 camera. Macintosh °dONLNd¶lDxÄ(uDplatform only_İdONLNd≥lÄxÖ)<. .°dONLNd∂wlÉ¥(Äl kCmCommError., °dONLNd√wÉ,)©-6214°dONLNd…wDÉK)/A∫†°dONLNd wKɺ) serial communication err∂`°dONLNd„wºÉ‰)q    or occurr≥@°dONLNdÏw‰ÉÛ)(ed. °dONLNdÇDéN(ãDWÛ`°dONLNdÒÇMé≠)    indows platform only1‡°dONLNdÇ≠é≤)`. .°dONLNdçlôÃ(ñlkCmNoMemoryError., °dONLNdçô,)©-6209°dONLNdçDô÷)/ System failed to allocate memory=`°dONLNd?ç÷ô€)í. °dONLNdAòD§N(°DWÛ`°dONLNdBòM§≠)    indows platform only1‡°dONLNdVò≠§≤)`. .°dONLNdY£l؉(¨lkCmNotConnectedErrorˇˇ›î, ˇ»°dONLNdn£Ø,)©-6208.°dONLNdt£DØK)/A∫†°dONLNdu£KØÏ)$ connection with the camera has not °dONLNdôÆD∫y(∑D been made. .°dONLNd•πl≈Δ(¬lkCmNotOpenError.∏¿°dONLNdµπ≈')©-621°dONLNdππ'≈,)1°dONLNdªπD≈x)
  1416. The QuickTº@°dONLNd≈πw≈Ú)3ake 100 driver has not been °dONLNd·ƒD–u(ÕDinitialized. .°dONLNdÔœl€Ã(ÿlkCmProtocolError., °dONLNdœ€,)©-6212°dONLNdœD€M)/PrN†°dONLNdœN€x)
  1417.  
  1418. otocol errK`°dONLNdœx€Ï)*or during communication °dONLNd*⁄DÊ{(„D with QuickTS†°dONLNd5⁄{ÊÕ)7ake 100 camera. W @°dONLNdF⁄ÕÊ)Rindows °dONLNdMÂDÒÄ(ÓDplatform only_İdONLNdZÂÄÒÖ)<. °dONLNd]    *Q(*SEE ALSO
  1419. .°dONLNdfl#“+BCmRestoreDefaults°dONLNdw“#‡)f on °dONLNd{‡#¯)page °dONLNdį# )2-38°dONLNdÑ #), °dONLNdÜ#d)CmSetOwnerName°dONLNdîd#r)T on °dONLNdòr#ä)page °dONLNdùä#ù)2-40°dONLNd°ù#¢), °dONLNd£$l0¿(-lCmGetErrorInfo°dONLNd±$¿0Œ)T on °dONLNdµ$Œ0Ê)page °dONLNd∫$Ê0˘)2-48°dONLNdæ$˘0˛), °dONLNd¿$˛0R)CmSetFlashMode°dONLNdŒ$R0U)T,°dONLNdœ$U0ô) described next 
  1420. `*i¯4a*h¯ b*b˛
  1421. ˇ·ˇ‚7^ .°dONLNd‡S*aã(]*CmSetFlashModeˇˇˇˇˇˇ(]Ú2
  1422. .°dONLNdrl~û({l3pascal OSErr CmSetFlashMode(CameraData cameraData, °dONLNd+ÄÍåb+~Boolean flashMode); °dONLNd@òl§®(°l
  1423. cameraData°dONLNdKòƧ )BThe private data strl°dONLNd_ò §!)]uctur>`°dONLNddò!§,)e r¿°dONLNdgò,§]) eturned by ¿°dONLNdrò]§•)1 CmOpenDriver¿°dONLNd~ò•§ÿ)H  when your .°dONLNdâ§Æ∞0(≠Æapplication opens the QuickT‰`°dONLNd•§/∞å)Åake 100 device driver‡°dONLNd∫§ç∞í)^. ˇ¨@ˇ ˇˇˇˇ@
  1424. ˇ·ˇ‚7^
  1425. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1426. , (‡2-434^H¿,
  1427. Courier.°dONLNd\äh¿(eä    flashMode.°dONLNd
  1428. \ÃhÂ)BThe fl»Ä°dONLNd\Âh.)ash mode to be r”‡°dONLNd \.hK)Iegister#°dONLNd'\Lhó)ed in the camera.°dONLNd9ÅHäÅ(àH DESCRIPTION
  1429. .°dONLNdEèäõû+BThe °dONLNdIèûõÚ)CmSetFlashMode°dONLNdWèÚõ)T  function rR`°dONLNdbèõf),egisters a new flR`°dONLNdsèfõ‰)Hash mode in the camera curr$¿°dONLNdéè‰õ˛)~ently .°dONLNdîúä®’(•äconnected. The fl≤†°dONLNd•ú’®©)K-ash mode of a camera determines whether the flfi@°dONLNd”ú©®ı)‘ash is to be on, of˝¿°dONLNdÊúı®    )Lf, or .°dONLNdÏ©äµ9(≤ä'automatic. The possible values for the °dONLNd©9µo)Ø    flashMode°dONLNd©oµ≠)6 parameter arR`°dONLNd)©≠µ¥)>e °dONLNd,∫äΔΔ(√ä
  1430. kCmFlashOn.°dONLNd7∫ÃΔÒ)BThe currÍ¿°dONLNd?∫ÒΔ©)%(ently connected camera always uses the flj†°dONLNdh∫™Δ)πash to take subsequent °dONLNdΔÓÊ(œÃpicturÈ@°dONLNdÖΔÊ“Ù)es. .°dONLNdä÷ä‚Ã(flä kCmFlashOff.°dONLNdñ‚ÃÓÒ+B The currÍ¿°dONLNdû‚ÒÓ´)%)ently connected camera does not use the fl√@°dONLNd»‚¨Ó)ªash to take subsequent °dONLNdflÓÃ˙Ê(˜ÃpicturÈ@°dONLNdÂÓÊ˙Ù)es. .°dONLNdͲä
  1431. “(ä kCmFlashAuto.°dONLNd˜
  1432. ÃÒ+B The currÍ¿°dONLNdˇ
  1433. Ò˚)%9ently connected camera automatically determines how the fl8İdONLNd9
  1434. ¸(¸ash °dONLNd=Ã"](Ã!is used to take subsequent pictur[ °dONLNd^]"k)ëes. °dONLNdc'ä3£(0äThe fl»Ä°dONLNdi'£3)ash mode setting is in ef)°dONLNdÇ'3    )k<fect until either the application makes another call to the .°dONLNdæ4ä@fi(=äCmSetFlashMode°dONLNdÃ4fi@ô)T+ function, the application makes a call to °dONLNd˜4ô@ˇ)ªCmRestoreDefaults°dONLNd4ˇ@)f, or .°dONLNdAäMπ(Jä the user pr$‡°dONLNdA∫MÙ)0esses the corrȇ°dONLNd&AÙM+): esponding fl*‡°dONLNd2A,Mû)8ash button on the camera.°dONLNdLgHpb(nHRESULëİdONLNdQgbpÜ)T CODES
  1435. .°dONLNdYuäŃ+(If the specifi°dONLNdguƒÅÿ):ed fl°dONLNdluÿÅi) ash mode has successfully been rR`°dONLNdåuiÅà)ëegister$¿°dONLNdìuàÅ™)ed, the $¿°dONLNdõu™Å˛)"CmSetFlashMode$¿°dONLNd©u˛Å)T °dONLNd™Çäé¥(ãä
  1436. function rR`°dONLNd¥Ç¥é—)*eturns R`°dONLNdªÇ—éÔ)noErrï°dONLNd¿ÇÓéÛ). .°dONLNd√îä†≠(ùä    If an errÖ°dONLNdÃî≠†)#or is detected, the value rù†°dONLNdÁ)o eturned is one of the following:.°dONLNd°ä≠Ã(™ä kCmAIPError., °dONLNd°3≠J)©-6201°dONLNd°b≠î)/
  1437. An asynchr<¿°dONLNd$°ï≠ı)3onous operation is alr5İdONLNd:°ı≠ )`eady °dONLNd?¨b∏w(µbin prć°dONLNdD¨w∏Ö)ogrJİdONLNdG¨Ü∏ò)ess. .°dONLNdM∑ä√fi(¿äkCmBadArgError., °dONLNd\∑3√J)©-6204°dONLNdb∑b√Ò)/ Parameter is or contains an addr‰ °dONLNdÇ∑Ò√ )èess of °dONLNdâ¬bŒø(Àban invalid data item. .°dONLNd†ÕäŸfi(÷äkCmCameraError., °dONLNdØÕ3ŸJ)©-6200°dONLNdµÕbŸp)/ErrS`°dONLNd∏ÕpŸ˚) or detected by the camera. Call .°dONLNdÿÿb‰∂(·bCmGetErrorInfo°dONLNdÊÿ∂‰π)T.°dONLNdË„äÔ(ÏäkCmCameraNotFoundError., °dONLNdˇ„3ÔJ)©-6206°dONLNd„bÔ)/&Device connected to the port is not a °dONLNd+Ób˙Ç* QuickTÄİdONLNd1ÓÇ˙˚) ake 100 camera. Macintosh °dONLNdK˘bû(bplatform only_İdONLNdX˘û£)<. .°dONLNd[ä“(ä kCmCommError., °dONLNdh3J)©-6214°dONLNdnbi)/A∫†°dONLNdoi⁄) serial communication err∂`°dONLNdà⁄)q    or occurr≥@°dONLNdë)(ed. °dONLNdïbl(bWÛ`°dONLNdñkÀ)    indows platform only1‡°dONLNd™À–)`. .°dONLNd≠ä&Í(#äkCmNoMemoryError., °dONLNdæ3&J)©-6209°dONLNdƒb&Ù)/ System failed to allocate memory=`°dONLNd‰Ù&˘)í. °dONLNdÊ%b1l(.bWÛ`°dONLNdÁ%k1À)    indows platform only1‡°dONLNd˚%À1–)`. .°dONLNd˛0ä<(9äkCmNotConnectedErrorˇˇ›î, ˇ»°dONLNd03<J)©-6208.°dONLNd0b<i)/A∫†°dONLNd0i<
  1438. )$ connection with the camera has not °dONLNd>;bGó(Db been made. .°dONLNdJFäR‰(OäkCmNotOpenError.∏¿°dONLNdZF3RE)©-621°dONLNd^FERJ)1°dONLNd`FbRñ)
  1439. The QuickTº@°dONLNdjFïR)3ake 100 driver has not been °dONLNdÜQb]ì(Zbinitialized. .°dONLNdî\ähÍ(eäkCmProtocolError., °dONLNd•\3hJ)©-6212°dONLNd´\bhk)/PrN†°dONLNd≠\lhñ)
  1440.  
  1441. otocol errK`°dONLNd∑\ñh
  1442. )*or during communication °dONLNdœgbsô(pb with QuickTS†°dONLNd⁄gôsÎ)7ake 100 camera. W @°dONLNdÎgÎs)Rindows °dONLNdÚrb~û({bplatform only_İdONLNdˇrû~£)<. °dONLNdñHüo(ùHSEE ALSO
  1443. .°dONLNd §ä∞fi+BCmSetOwnerName°dONLNd§fi∞Ï)T on °dONLNd§Ï∞)page °dONLNd"§∞)2-40°dONLNd&§∞), °dONLNd(§∞|)CmSetPictureMode°dONLNd8§|∞ä)` on °dONLNd<§ä∞¢)page °dONLNdA§¢∞µ)2-41°dONLNdE§µ∞∫), °dONLNdG±äΩ(∫äCmRestoreDefaults°dONLNdX±Ω˛)f on °dONLNd\±˛Ω)page °dONLNda±Ω))2-38°dONLNde±)Ω.), °dONLNdg±.ΩÇ)CmGetErrorInfo°dONLNdu±ÇΩê)T on °dONLNdy±êΩ®)page °dONLNd~±®Ωª)2-48°dONLNdDZªΩΩ) ˇR@ˇ ˇˇˇˇ@
  1444. ˇ·ˇ‚7^
  1445. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1446. (‡*2-44    )BQuickT@)ake 100 Device Driver Reference4^*¿¯
  1447. j*r¯4j*r¯ l*l˛
  1448. ˇ·ˇ‚7^ °dONLNd\*jm(f*
  1449. CmSetSleepˇˇˇˇˇˇ(fÚ2,
  1450. Courier
  1451. .°dONLNd {lá¸(Ñlpascal OSErr CmSetSleep °dONLNd,âÍïÏ+~+(CameraData cameraData, short sleepDelay); °dONLNdX°l≠®(™l
  1452. cameraData°dONLNdc°Æ≠ )BThe private data strl°dONLNdw° ≠!)]uctur>`°dONLNd|°!≠,)e r¿°dONLNd°,≠]) eturned by ¿°dONLNdä°]≠•)1 CmOpenDriver¿°dONLNdñ°•≠ÿ)H  when your .°dONLNd°≠Æπ0(∂Æapplication opens the QuickT‰`°dONLNdΩ≠/πå)Åake 100 device driver‡°dONLNd“≠çπí)^. .°dONLNd’Ωl…®(Δl
  1453. sleepDelay.°dONLNd‡ΩÆ…µ)BA∫†°dONLNd·Ωµ…) numeric value that rˆÄ°dONLNdˆΩ…)\eprá@°dONLNd˘Ω …Ÿ)+esents the period of time the camera shall °dONLNd$…Æ’±(“ÆrE°dONLNd%…≤’”)emain r·`°dONLNd,…”’3)!eady for command pr”‡°dONLNd?…3’q)`ocessing befor•¿°dONLNdM…r’„)?e entering the sleep state. °dONLNdjÔ*¯c(ˆ* DESCRIPTION
  1454. ˇˇzÇ.°dONLNdv¸l+BThe ˇ˛oÜ˙ǰdONLNdz¸ª)
  1455. CmSetSleepˇˇzÇ˙ǰdONLNdѸªÄ)<. function sets the time that the camera will rt°dONLNd≤¸Å¯)Δemain fully active prior to .°dONLNdŒ    l(l'entering the sleep state. When a QuickTr‡°dONLNdı    Ï)Ø2ake 100 camera is in the sleep state, the load on °dONLNd'l"≤(lthe batteries is r`°dONLNd9≤"—)FBeduced to help conserve battery life. The default time delay befor‡°dONLNd{“"È(“e the °dONLNdÅ#l/¸(,l"camera enters the sleep state is fi¨¿°dONLNd§#¸/É)êve minutes. The time delay is rE‡°dONLNd√#Ñ/®)à    eset to fi °dONLNdÕ#©/Û)%ve minutes after °dONLNdfi0l<∏(9lyou disconnect frÍİdONLNdÔ0∏<˛)Lom the camera. .°dONLNdˇBlNÄ(KlThe °dONLNdBÄNº)
  1456. sleepDelay°dONLNdBºN)< parameter is exprR`°dONLNdBN¨)R$essed as a number in the range 0 thr$¿°dONLNdCB¨Nˆ)ûough 5 with the .°dONLNdSOl[∑(Xldelay values corr†°dONLNddO∏[9)Lesponding to those shown in ¯†°dONLNdÄO9[?)ÅT.`°dONLNdÅO?[a)able 2-1;‡°dONLNdâOa[f)". 
  1457. Ä*à¯4Ä*ᯠÉlɯ
  1458. ˇ·ˇ‚7^    °dONLNdåulÄì(}l    Table 2-1.°dONLNdñu™Ä)>CmSetSleep sleepDelay°dONLNd´uÄ[)i parameter values.°dONLNdøçkòq(ïkV0°dONLNd¿çqòÉ)alue°dONLNd≈ç¢ò‚)1Constant name°dONLNd”çò9)f Description
  1459. .°dONLNd‡õlßr(§l0°dONLNd‚õ¢߉)6 kCmSleepNow.°dONLNdÓõßö)f!Enter the sleep state immediatelyU °dONLNdõößü)í. .°dONLNd¶l≤r(Øl1°dONLNd¶¢≤fi)6
  1460. kCmSleep5M.°dONLNd ¶≤›)f2Enter the sleep state after 5 minutes has elapsed..°dONLNdT±lΩr(∫l2°dONLNdV±¢Ω‰)6 kCmSleep15M.°dONLNdb±Ω‚)f3Enter the sleep state after 15 minutes has elapsed..°dONLNdóºl»r(≈l3°dONLNdôº¢»‰)6 kCmSleep30M.°dONLNd•º»‚)f3Enter the sleep state after 30 minutes has elapsed..°dONLNd⁄«l”r(–l4°dONLNd‹«¢”‰)6 kCmSleep60M.°dONLNdË«”‚)f3Enter the sleep state after 60 minutes has elapsed..°dONLNd“lfir(€l5°dONLNd“¢fi)6kCmSleepNever.°dONLNd-“fiÇ)fDo not enter the sleep state.°dONLNdK‰lÕ(ÌlThe sleep delay time r‡¿°dONLNda‰Õ£)a1estarts after any command is sent to the camera. 
  1461. ˇ*¯4ˇ* ¯    °dONLNdì˝l(lNote
  1462. ˇ·ˇ‚7^
  1463. °dONLNdò
  1464. l∂*Once the QuickTE°dONLNdß
  1465. ∂§)J6ake 100 camera enters the sleep state, any subsequent .°dONLNd›l"
  1466. (l"commands sent to the camera will rR`°dONLNdˇ
  1467. "#)ûeturn R`°dONLNd#"k) kCmCommErrorR`°dONLNdk"£)H because the .°dONLNd"l./(+l-serial port connection will have timed out. TT‡°dONLNdK"/.:)√o r`°dONLNdN";.h) eestablish °dONLNdY.l:˚(7lcommunication with the QuickTaİdONLNdv.˚:õ)è#ake 100 camera, the camera must be °dONLNdô:lFÜ(Cl?manually switched on again. Then your application can call the .°dONLNdÿFlR¥* CmDisconnect°dONLNd‰F¥R;)H  function followed by a call to °dONLNdF;Rq)á    CmConnect°dONLNdFqR°)6  to make a .°dONLNdRl^Ë([lconnection with the camera.,Zapf Dingbats°dONLNd4UÌ]Û)Åu
  1468. 3°dONLNd5RÙ^ˆ) °dONLNd7x*ÅD(*RESULëİdONLNd<xDÅh)T CODES
  1469. .°dONLNdDÖlëÄ+(The °dONLNdHÖÄëº)
  1470. CmSetSleep°dONLNdRÖºëæ)< °dONLNdSÖæëË)
  1471. function rR`°dONLNd]ÖËë)*eturns R`°dONLNddÖë#)noErrR`°dONLNdiÖ#ë_) if successful. ˇ.@ˇ ˇˇˇˇ@
  1472. ˇ·ˇ‚7^
  1473. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1474. , (‡2-454^H¿°dONLNd\äh≠(eä    If an errÖ°dONLNd    \≠hu)#0or is detected, one of the following values is râ`°dONLNd9\uhö)»eturned:,
  1475. Courier.°dONLNdBiäuÃ(rä kCmAIPError., °dONLNdNi3uJ)©-6201°dONLNdTibuî)/
  1476. An asynchr<¿°dONLNd^iïuı)3onous operation is alr5İdONLNdtiıu )`eady °dONLNdytbÄw(}bin prć°dONLNd~twÄÖ)ogrJİdONLNdÅtÜÄò)ess. .°dONLNdáäãfi(àäkCmBadArgError., °dONLNdñ3ãJ)©-6204°dONLNdúbãÒ)/ Parameter is or contains an addr‰ °dONLNdºÒã )èess of °dONLNd√äbñø(ìban invalid data item. .°dONLNd⁄ïä°fi(ûäkCmCameraError., °dONLNdÈï3°J)©-6200°dONLNdÔïb°p)/ErrS`°dONLNdÚïp°˚) or detected by the camera. Call .°dONLNd†b¨∂(©bCmGetErrorInfo°dONLNd †∂¨π)T.°dONLNd"´ä∑(¥äkCmCameraNotFoundError., °dONLNd9´3∑J)©-6206°dONLNd?´b∑)/&Device connected to the port is not a °dONLNde∂b¬Ç* QuickTÄİdONLNdk∂Ǭ˚) ake 100 camera. Macintosh °dONLNdÖ¡bÕû( bplatform only_İdONLNdí¡ûÕ£)<. .°dONLNdïÃäÿ“(’ä kCmCommError., °dONLNd¢Ã3ÿJ)©-6214°dONLNd®Ãbÿi)/A∫†°dONLNd©Ãiÿ⁄) serial communication err∂`°dONLNd¬Ã⁄ÿ)q    or occurr≥@°dONLNdÀÃÿ)(ed. °dONLNdœ◊b„l(‡bWÛ`°dONLNd–◊k„À)    indows platform only1‡°dONLNd‰◊À„–)`. .°dONLNdÁ‚äÓÍ(ÎäkCmNoMemoryError., °dONLNd¯‚3ÓJ)©-6209°dONLNd˛‚bÓÙ)/ System failed to allocate memory=`°dONLNd‚ÙÓ˘)í. °dONLNd Ìb˘l(ˆbWÛ`°dONLNd!Ìk˘À)    indows platform only1‡°dONLNd5ÌÀ˘–)`. .°dONLNd8¯ä(äkCmNotConnectedErrorˇˇ›î, ˇ»°dONLNdM¯3J)©-6208.°dONLNdS¯bi)/A∫†°dONLNdT¯i
  1477. )$ connection with the camera has not °dONLNdxbó( b been made. .°dONLNdÑä‰(äkCmNotOpenError.∏¿°dONLNdî3E)©-621°dONLNdòEJ)1°dONLNdöbñ)
  1478. The QuickTº@°dONLNd§ï)3ake 100 driver has not been °dONLNd¿b%ì("binitialized. .°dONLNdŒ$ä0Í(-äkCmProtocolError., °dONLNdfl$30J)©-6212°dONLNdÂ$b0k)/PrN†°dONLNdÁ$l0ñ)
  1479.  
  1480. otocol errK`°dONLNdÒ$ñ0
  1481. )*or during communication °dONLNd    /b;ô(8b with QuickTS†°dONLNd/ô;Î)7ake 100 camera. W @°dONLNd%/Î;)Rindows °dONLNd,:bFû(Cbplatform only_İdONLNd9:ûF£)<. 
  1482. tH}4uH| vHv
  1483. ˇ·ˇ‚7^ °dONLNd<gHu•(qH CmGetDecompTz@°dONLNdHg§uª)\ableˇˇˇˇˇˇ(q2
  1484. .°dONLNdNÜäíŒ(èä6pascal OSErr CmGetDecompTable (CameraData cameraData, °dONLNdèî>†‡+¥BufferPtr decompTablePtr); °dONLNd´¨ä∏Δ(µä
  1485. cameraData°dONLNd∂¨Ã∏))BThe private data strl°dONLNd ¨)∏?)]uctur>`°dONLNdœ¨?∏J)e r¿°dONLNd“¨J∏{) eturned by ¿°dONLNd›¨{∏√)1 CmOpenDriver¿°dONLNdȨ√∏ˆ)H  when your .°dONLNdÙ∏ÃN(¡Ãapplication opens the QuickT‰`°dONLNd∏Mƒ™)Åake 100 device driver‡°dONLNd%∏´ƒ∞)^. .°dONLNd(»ä‘fi(—ädecompTablePtr.°dONLNd7‘ÇÈ+B APointer to the location in which this function writes the decomprû†°dONLNdx‘ȇ(›Èession °dONLNd‡ÃÏÛ(Èà   data corr˚İdONLNdà‡ÛÏü)'$esponding to the camera. The decomprgİdONLNd¨‡†Ï˛)≠ession information is °dONLNd¬ÏïC(ıÃneeded to expand images rñ@°dONLNd€ÏC¯q)w etrieved frk`°dONLNdÊÏq¯˘).om the camera. The size of the °dONLNd¯ÃM(Ãmemory allocated must be gr«°dONLNd ¯MÌ)Å'eater than or equal to the size of the °dONLNdGÃ◊(Ãstrfi°dONLNdJ◊Ó) ucturc‡°dONLNdOÔs) e, which is 98 bytes in length. °dONLNdp*H3Å(1H DESCRIPTION
  1486. .°dONLNd|8äDû+BThe °dONLNdÄ8ûD˛)CmGetDecompTable°dONLNdê8˛D*)`  function rR`°dONLNdõ8*Dt),eturns the compr$¿°dONLNd´8tD∑)Jession table str¿°dONLNdª8∑DÕ)Cuctur„ °dONLNd¿8ÃD”)e .°dONLNd¬EäQõ(Näcorr`°dONLNdΔEúQ)esponding to the camera currñ`°dONLNd‚EQq)Åently connected. W»¿°dONLNdÙEqQı)Tindows applications pass this .°dONLNdRä^ñ([ästrl°dONLNdRñ^¨) uctur>`°dONLNdR¨^)e to the IPM with the >`°dONLNd0R^é)dIpSetCompressionTable>`°dONLNdERé^)~ function. The IPM uses the .°dONLNda_äkÍ(häinformation in this str @°dONLNdx_Îk)aucturí °dONLNd}_k<) e to decompry‡°dONLNdâ_<kñ):ess the image data fr'°dONLNdû_ókÒ)[om the camera beforưdONLNd±_Òk )Ze any °dONLNd∑läx„(uädisplay of the pictur ¿°dONLNdÃl„xà)Y%e can take place on the host computer@°dONLNdÒlâxé)¶. °dONLNdÙ~ääË(áäSee the functions defiÌ¿°dONLNd
  1487. ~Ëä)^ned in ^@°dONLNd~äê)Chapter 4, “Displaying QuickT̰dONLNd.~èäÒ)àake 100 Images in a Wª °dONLNdC~Òä)bindows °dONLNdJãäó≈(îäApplication,”~ °dONLNdWãΔóÈ)< for morH†°dONLNd_ãÍóá)$!e information about how the comprê`°dONLNdÄãáófi)ùession table data strª`°dONLNdïãfióı)WucturA@°dONLNdöãˆó˝)e °dONLNdúòä§ç(°ärE°dONLNdùòé§R)-eturned by this function is used by the IPM. ˇ¿@ˇ ˇˇˇˇ@
  1488. ˇ·ˇ‚7^
  1489. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1490. (‡*2-46    )BQuickT@)ake 100 Device Driver Reference4^*¿¯°dONLNd\*eD(c*RESULëİdONLNd\Deh)T CODES
  1491. .°dONLNdjlvÄ+(The ,
  1492. Courier°dONLNdjÄv‡)CmGetDecompTable°dONLNd!j‡v )`  function rR`°dONLNd,j v)),eturns R`°dONLNd3j)vG)noErrR`°dONLNd8jGv¬) if the data is successfully r$¿°dONLNdVj¬vÎ){    etrieved °dONLNd_wlÉ (Äland written to the arR`°dONLNdtw É)^ea pointed to by R`°dONLNdÖwÉh)JdecompTablePtrï°dONLNdìwgÉl)S. .°dONLNdñâlïè(íl    If an errÖ°dONLNdüâèï˛)#or is detected, the value rù†°dONLNd∫â˛ïà)o eturned is one of the following:.°dONLNd€ñl¢Æ(ül kCmAIPError., °dONLNdÁñ¢,)©-6201°dONLNdÌñD¢v)/
  1493. An asynchr<¿°dONLNd˜ñw¢◊)3onous operation is alr5İdONLNdñ◊¢Ó)`eady °dONLNd°D≠Y(™Din prć°dONLNd°Y≠g)ogrJİdONLNd°h≠z)ess. .°dONLNd ¨l∏¿(µlkCmBadArgError., °dONLNd/¨∏,)©-6204°dONLNd5¨D∏”)/ Parameter is or contains an addr‰ °dONLNdU¨”∏Ó)èess of °dONLNd\∑D√°(¿Dan invalid data item. .°dONLNds¬lŒ¿(ÀlkCmCameraError., °dONLNdǬŒ,)©-6200°dONLNdà¬DŒR)/ErrS`°dONLNdã¬RŒ›) or detected by the camera. Call .°dONLNd´ÕDŸò(÷DCmGetErrorInfo°dONLNdπÕòŸõ)T.°dONLNdªÿl‰(·lkCmCameraNotFoundError., °dONLNd“ÿ‰,)©-6206°dONLNdÿÿD‰Á)/&Device connected to the port is not a °dONLNd˛„DÔd* QuickTÄİdONLNd„dÔ›) ake 100 camera. Macintosh °dONLNdÓD˙Ä(˜Dplatform only_İdONLNd+ÓÄ˙Ö)<. .°dONLNd.˘l¥(l kCmCommError., °dONLNd;˘,)©-6214°dONLNdA˘DK)/A∫†°dONLNdB˘Kº) serial communication err∂`°dONLNd[˘º‰)q    or occurr≥@°dONLNdd˘‰Û)(ed. °dONLNdhDN(DWÛ`°dONLNdiM≠)    indows platform only1‡°dONLNd}≠≤)`. .°dONLNdÄlÃ(lkCmNoMemoryError., °dONLNdë,)©-6209°dONLNdóD÷)/ System failed to allocate memory=`°dONLNd∑÷€)í. °dONLNdπD&N(#DWÛ`°dONLNd∫M&≠)    indows platform only1‡°dONLNdŒ≠&≤)`. .°dONLNd—%l1‰(.lkCmNotConnectedErrorˇˇ›î, ˇ»°dONLNdÊ%1,)©-6208.°dONLNdÏ%D1K)/A∫†°dONLNdÌ%K1Ï)$ connection with the camera has not °dONLNd0D<y(9D been made. .°dONLNd;lGΔ(DlkCmNotOpenError.∏¿°dONLNd-;G')©-621°dONLNd1;'G,)1°dONLNd3;DGx)
  1494. The QuickTº@°dONLNd=;wGÚ)3ake 100 driver has not been °dONLNdYFDRu(ODinitialized. .°dONLNdgQl]Ã(ZlkCmProtocolError., °dONLNdxQ],)©-6212°dONLNd~QD]M)/PrN†°dONLNdÄQN]x)
  1495.  
  1496. otocol errK`°dONLNdäQx]Ï)*or during communication °dONLNd¢\Dh{(eD with QuickTS†°dONLNd≠\{hÕ)7ake 100 camera. W @°dONLNdæ\Õh)Rindows °dONLNd≈gDsÄ(pDplatform only_İdONLNd“gÄsÖ)<. °dONLNd’ã*îQ(í*SEE ALSO
  1497. .°dONLNdfiôl•+BCmGetColorCorrectionMatrix°dONLNd¯ô•R)ú, described next; °dONLNd
  1498. ôR•¶)JCmGetErrorInfo°dONLNdô¶•¥)T on °dONLNdô¥•Ã)page °dONLNd!ôÕfl)2-48°dONLNd%ôfl•‰); .°dONLNd'¶l≤Ù(Øland the functions described in ™ °dONLNdF¶Ù≤})àChapter 4, “Displaying QuickT8‡°dONLNdc¶}≤’)âake 100 Images in a °dONLNdw≥løv(ºlWÛ`°dONLNdx≥uøò)    indows Ù°dONLNd≥òø—)# Application”r °dONLNdã≥“ø‘): 
  1499. Ô*¯¯4*˜¯ Ò*Ò˛
  1500. ˇ·ˇ‚7^ °dONLNdç‚*Œ(Ï*CmGetColorCorrectionMatrixˇˇˇˇˇˇ(ÏÚ2
  1501. .°dONLNd©l∫(
  1502. lpascal OSErr °dONLNd∂∫V)NCmGetColorCorrectionMatrix°dONLNdÿÍz+0(CameraData cameraData, °dONLNd¯Í)™*  CmColorMatrixPtr colorMatrix); °dONLNd5lA®(>l
  1503. cameraData°dONLNd$5ÆA )BThe private data strl°dONLNd85 A!)]uctur>`°dONLNd=5!A,)e r¿°dONLNd@5,A]) eturned by ¿°dONLNdK5]A•)1 CmOpenDriver¿°dONLNdW5•Aÿ)H  when your .°dONLNdbAÆM0(JÆapplication opens the QuickT‰`°dONLNd~A/Må)Åake 100 device driver‡°dONLNdìAçMí)^. .°dONLNdñQl]Æ(Zl colorMatrixˇˇ¢Ë°dONLNd¢]Æi®+B :Pointer to the location in which this function writes the ˇ˛Ë∏›°dONLNd‹]®iˆ)˙CmColorMatrixˇˇ¢Ë›°dONLNdÈ]ˆi˜)N .°dONLNdÍiÆu’(rÆ    data corr˚İdONLNdÛi’uÙ)'?esponding to the camera. The size of the memory allocated must ˇˇ¶.°dONLNd2uÆŬ(~Æbe gr¯x°dONLNd7u¬Åd)'eater than or equal to the size of the ˇ˛ÚHœP°dONLNd^ueÅ≥)£CmColorMatrixˇˇ¶œP°dONLNdku≥Åÿ)N     data strİdONLNdtuŸÅÔ)&ucturŸ‡°dONLNdyuÓŘ)e. ˇ“@ˇ ˇˇˇˇ@
  1504. ˇ·ˇ‚7^
  1505. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1506. , (‡2-474^H¿°dONLNd\HeÅ(cH DESCRIPTION
  1507. .°dONLNd käwû+BThe ,
  1508. Courier°dONLNdkûw:)CmGetColorCorrectionMatrix°dONLNd*k:wf)ú  function rR`°dONLNd5kfwï), eturns the R`°dONLNd@kïw„)/CmColorMatrixR`°dONLNdMk„w˝)N data .°dONLNdSxäÑï(Åästrfi°dONLNdVxïѨ) ucturc‡°dONLNd[x≠ÑΔ)e corrJ‡°dONLNdaxΔÑG)esponding to the camera curr√‡°dONLNd}xGÑõ)Åently connected. Wˆ@°dONLNdèxõÑ)Tindows applications must °dONLNd®Öäë‘(éäpass this data strq`°dONLNd∫Ö‘ëÎ)Juctur˜@°dONLNdøÖÎëb)e to the IPM to accurately r °dONLNd€Öcëq)xeprû‡°dONLNdfiÖqëø)oduce the QuickTO°dONLNdÓÖøë)Nake 100 image on °dONLNdˇíäû–(õäthe host display¬†°dONLNdíœû2)E. See the functions defi0`°dONLNd'í3ûQ)dned in †‡°dONLNd.íQû⁄)Chapter 4, “Displaying QuickT/†°dONLNdKí⁄û˝)âake 100 °dONLNdSüä´…(®äImages in a Wı`°dONLNd`ü»´Î)>indows ˆ°dONLNdgüδ&)#Application,”Ù °dONLNdtü'´J)< for mor憰dONLNd|üK´Ì)$$e information about how the data str¡†°dONLNd†üÌ´)¢ucturGİdONLNd•ü´ )e °dONLNdߨä∏ç(µärE°dONLNd®¨é∏R)-eturned by this function is used by the IPM. °dONLNd’¨R∏T)ƒ °dONLNd◊æä :(«ä&Since the color matrix and image comprd °dONLNd˝æ: )∞/ession schemes in the camera may change in the °dONLNd,Àä◊†(‘äfuturÈİdONLNd1À†◊‚)Ke, it is always important to check the version number of the color matrix. ≥‡°dONLNd|À„◊È(‘„Yt`°dONLNd}ÀÈ◊)ou must °dONLNdÖÿä‰'(·ä!make adjustments in your image pr®Ä°dONLNd¶ÿ'‰
  1509. )ù3ocessing setup, based on the version number of the °dONLNdŸÂäÒ1(Óä'color matrix in the camera as follows: °dONLNd˜ä¥*On the W~°dONLNd    ˜¥)*Qindows platform, if the color matrix in the camera is version 1, use the default °dONLNdZäÁ(äcolor matrix in the W⁄¿°dONLNdoÁÒ)]:indows IPM and pass that matrix back to the IPM for image °dONLNd©äì(äprG °dONLNd´îz)
  1510. 9ocessing. If it is not version 1, pass the color matrix r†°dONLNd‰{)Á"eturned by the camera to the IPM. °dONLNd#ä/(,äXOn the Macintosh platform, if the color matrix is not version 1, get the color matrix frı‡°dONLNd_#/(,om °dONLNdb0ä<ÿ(9äthe camera, and fiW¿°dONLNdt0Ÿ<;)Oll in the color matrix fiú†°dONLNdç0;<§)beld for the PICT QuickT§ °dONLNd§0§<ª)iake fi↰dONLNd™0º<◊)le defi≠¿°dONLNd±0◊<Û)nition °dONLNd∏=äIÎ(Fäpasssed to the QuickT4@°dONLNdÕ=ÎI)a
  1511. ake QuickTk‡°dONLNd◊=IW)2 ime decomprÿ °dONLNd‚=WI):+essor with the camera color matrix. If the °dONLNdJäV(Säversion number is 1, pr´†°dONLNd$JV∫)f,ocess and display the images with the QuickT]`°dONLNdPJ∫VÛ)  ake decomprú`°dONLNd[JÛV )9essor °dONLNdaWäcH(`ä(using the same method you use for QuickTº°dONLNdâWHcz)æ
  1512. ime PICT fiÓ†°dONLNdîWzcú)2    les. See 0†°dONLNdùWùc)#Chapter 5, “Displaying °dONLNd¥däp™(mäQuickTÄİdONLNd∫d™p3) ake 100 Images in a Macintosh b`°dONLNdÿd3pl)â Application”‡Ä°dONLNd‰dlpè)9 for mor´°dONLNdÏdêpÍ)$e information about °dONLNdqä}‹(zädisplaying QuickT °dONLNdq‹}µ)R.ake images on the Macintosh computer platform.°dONLNd@óH†b(ûHRESULëİdONLNdEób†Ü)T CODES
  1513. .°dONLNdM•ä±û+(The °dONLNdQ•û±:)CmGetColorCorrectionMatrix°dONLNdk•:±f)ú  function rR`°dONLNdv•f±É),eturns R`°dONLNd}•ɱ°)noErrR`°dONLNdÇ•°±·) if the data is °dONLNdí≤äæ≈(ªäsuccessfully rR`°dONLNd†≤≈æL);etrieved and written to the ar$¿°dONLNdæ≤Læñ)áea pointed to by $¿°dONLNdœ≤ñæÿ)J colorMatrix$¿°dONLNd⁄≤ÿæ›)B. .°dONLNd›ƒä–≠(Õä    If an errÖ°dONLNdʃ≠–)#or is detected, the value rù†°dONLNdƒ–¶)o eturned is one of the following:.°dONLNd"—ä›Ã(⁄ä kCmAIPError., °dONLNd.—3›J)©-6201°dONLNd4—b›î)/
  1514. An asynchr<¿°dONLNd>—ï›ı)3onous operation is alr5İdONLNdT—ı› )`eady °dONLNdY‹bËw(Âbin prć°dONLNd^‹wËÖ)ogrJİdONLNda‹ÜËò)ess. .°dONLNdgÁäÛfi(äkCmBadArgError., °dONLNdvÁ3ÛJ)©-6204°dONLNd|ÁbÛÒ)/ Parameter is or contains an addr‰ °dONLNdúÁÒÛ )èess of °dONLNd£Úb˛ø(˚ban invalid data item. .°dONLNd∫˝ä    fi(äkCmCameraError., °dONLNd…˝3    J)©-6200°dONLNdœ˝b    p)/ErrS`°dONLNd“˝p    ˚) or detected by the camera. Call .°dONLNdÚb∂(bCmGetErrorInfo°dONLNd∂π)T.°dONLNdä(äkCmCameraNotFoundError., °dONLNd3J)©-6206°dONLNdb)/&Device connected to the port is not a °dONLNdEb*Ç* QuickTÄİdONLNdKÇ*˚) ake 100 camera. Macintosh °dONLNde)b5û(2bplatform only_İdONLNdr)û5£)<. .°dONLNdu4ä@“(=ä kCmCommError., °dONLNdÇ43@J)©-6214°dONLNdà4b@i)/A∫†°dONLNdâ4i@⁄) serial communication err∂`°dONLNd¢4⁄@)q    or occurr≥@°dONLNd´4@)(ed. °dONLNdØ?bKl(HbWÛ`°dONLNd∞?kKÀ)    indows platform only1‡°dONLNdƒ?ÀK–)`. .°dONLNd«JäVÍ(SäkCmNoMemoryError., °dONLNdÿJ3VJ)©-6209°dONLNdfiJbVÙ)/ System failed to allocate memory=`°dONLNd˛JÙV˘)í. °dONLNd    Ubal(^bWÛ`°dONLNd    UkaÀ)    indows platform only1‡°dONLNd    UÀa–)`. .°dONLNd    `äl(iäkCmNotConnectedErrorˇˇ›î, ˇ»°dONLNd    -`3lJ)©-6208.°dONLNd    3`bli)/A∫†°dONLNd    4`il
  1515. )$ connection with the camera has not °dONLNd    Xkbwó(tb been made. .°dONLNd    dvälj(äkCmNotOpenError.∏¿°dONLNd    tv3ÇE)©-621°dONLNd    xvEÇJ)1°dONLNd    zvbÇñ)
  1516. The QuickTº@°dONLNd    ÑvïÇ)3ake 100 driver has not been °dONLNd    †Åbçì(äbinitialized. .°dONLNd    ÆåäòÍ(ïäkCmProtocolError., °dONLNd    øå3òJ)©-6212°dONLNd    ≈åbòk)/PrN†°dONLNd    «ålòñ)
  1517.  
  1518. otocol errK`°dONLNd    —åñò
  1519. )*or during communication °dONLNd    Èób£ô(†b with QuickTS†°dONLNd    Ùóô£Î)7ake 100 camera. W @°dONLNd
  1520. óΣ)Rindows °dONLNd
  1521. ¢bÆû(´bplatform only_İdONLNd
  1522. ¢ûÆ£)<. ˇå@ˇ ˇˇˇˇ@
  1523. ˇ·ˇ‚7^
  1524. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1525. (‡*2-48    )BQuickT@)ake 100 Device Driver Reference4^*¿¯°dONLNd\*eQ(c*SEE ALSO,
  1526. Courier
  1527. .°dONLNd    jlvÃ+BCmGetDecompTable°dONLNdjÃv⁄)` on °dONLNdj⁄vÚ)page °dONLNd"jÚv)2-45°dONLNd&jv
  1528. ); °dONLNd(j
  1529. v^)CmGetErrorInfo°dONLNd6j^vÕ)T, described next; and the .°dONLNdPwlÉ–(Älfunctions described in fl†°dONLNdgw–ÉY)dChapter 4, “Displaying QuickTn`°dONLNdÑwYɪ)âake 100 Images in a W<İdONLNdôwªÉfi)bindows °dONLNd†Ñlê•(çl Application”˛ °dONLNd¨Ñ•êß)9 
  1530. ¿*…¯4¡*»¯ ¬*¬˛
  1531. ˇ·ˇ‚7^ °dONLNdÆ≥*¡Ñ(Ω*CmGetErrorInfoˇˇˇˇˇˇ(ΩÚ2
  1532. .°dONLNdæ“lfiû(€l3pascal OSErr CmGetErrorInfo(CameraData cameraData, °dONLNd˘‡ÍÏV+~shortPtr category,°dONLNdÓÍ˙V*shortPtr detail); °dONLNd&l®(l
  1533. cameraData°dONLNd1Æ )BThe private data strl°dONLNdE !)]uctur>`°dONLNdJ!,)e r¿°dONLNdM,]) eturned by ¿°dONLNdX]•)1 CmOpenDriver¿°dONLNdd•ÿ)H  when your .°dONLNdoÆ0(Æapplication opens the QuickT‰`°dONLNdã/å)Åake 100 device driver‡°dONLNd†çí)^. .°dONLNd£"l.ú(+lcategory.°dONLNd¨"Æ.≈)BAddrC¿°dONLNd∞"Δ.q))ess of a short into which this function r⁄°dONLNdŸ"q.Ú)´eturns the category code of a .°dONLNd˜.Æ:(7ÆkCmCameraError°dONLNd.:)T errR`°dONLNd    .:)orï°dONLNd .:M) . The specifeİdONLNd.M:≈)4ics of the category codes ar7‡°dONLNd3.≈:÷)xe pr
  1534. @°dONLNd7.÷:¯)ovided .°dONLNd>:ÆFπ(CÆin π¿°dONLNdA:πFø) TÔİdONLNdB:æF‡)able 2-2˝°dONLNdJ:‡F)" on C‡°dONLNdN:ÒF)page ¿°dONLNdS:    F)2-49r†°dONLNdW:F)..°dONLNdYJlVê(Sldetail.°dONLNd`JÆV≈)BAddrC¿°dONLNddJΔVq))ess of a short into which this function r⁄°dONLNdçJqVÂ)´eturns the detail code of a ˇˇ⁄J.°dONLNd©VÆb(_ÆkCmCameraErrorˇˇÛn°dONLNd∑Vb)T errEŒ°dONLNdªVb)oràn°dONLNdΩVbL) . The specif? °dONLNd…VMb∫)4ics of the detail codes ar”P°dONLNd„V∫b )me prô°dONLNdÁVÀb˜)
  1535. ovided in .°dONLNdÒbÆn¥(kÆTµ¿°dONLNdÚb≥n’)able 2-3√@°dONLNd˙b’nÂ)" on 
  1536.  °dONLNd˛bÊn˝)page °dONLNdb˝n)2-508‡°dONLNdbn).°dONLNd    à*ëc(è* DESCRIPTION
  1537. .°dONLNdïl°Ä+BThe °dONLNdïİ‘)CmGetErrorInfo°dONLNd'ï‘°)T  function rR`°dONLNd2ï°±),'etrieves detailed information about err$¿°dONLNdYï±°ƒ)±ors r˜ °dONLNd^ï√°Ù) eturned by ˇˇ¯°dONLNdi¢lÆÛ(´lthe camera. The information r@°dONLNdÜ¢ÙÆ$)à eturned by ˇˇ“˯0°dONLNdë¢$Æx)0CmGetErrorInfoˇˇ¯¯0°dONLNdü¢xƘ)T  is a pair of short integers in °dONLNdøØlªï(∏l    the form °dONLNd»Øïª≈))categoryd@°dONLNd–؃ª«)/,d@°dONLNd—Ø«ª…) d@°dONLNd“Ø…ªÌ)detaild@°dONLNdÿØÌªÚ)$. .°dONLNd€¡lÕø( lWhen a camera errÓ °dONLNdÏ¡øÕ})S-or is detected by a call to one of the QuickTÃ`°dONLNd¡}ÕÏ)æake 100 driver functions, .°dONLNd3Œl⁄®(◊lthe function rR`°dONLNdAŒ®⁄≈)<eturns R`°dONLNdHŒ≈⁄)kCmCameraErrorï°dONLNdVŒ⁄#)S. T™°dONLNdYŒ"⁄Î)
  1538. ,o get detailed information about the camera °dONLNdÖ€lÁy(‰lerrR`°dONLNdà€yÁÇ)orï°dONLNdä€ÅÁö), call ï°dONLNdë€öÁÓ)CmGetErrorInfoï°dONLNdü€ÓÁi)T. For example, a call to the ï°dONLNdº€iÁ…){CmGetPictureInfoï°dONLNdÀ…ÁÒ)`
  1539.  function .°dONLNd÷ËlÙÃ(Òlwith an invalid pictur⁄@°dONLNdÏËÃÙû)`/e number parameter will cause the function to r‡°dONLNdËüÙ„)”eturn a camera .°dONLNd*ıly(˛lerrR`°dONLNd-ıyÑ)or R`°dONLNd0ıÑÿ) kCmCameraErrorï°dONLNd>ı◊‚)S. T™°dONLNdAı·Ô)
  1540. o fi™°dONLNdEıÔµ)+nd out what condition caused the camera err|`°dONLNdpıµæ)Δorø°dONLNdrıΩ÷), call °dONLNdyl¿( lCmGetErrorInfo°dONLNdá¿ˇ)T, which will rR`°dONLNdïˇ*)?
  1541. eturn the R`°dONLNdü*Z)+categoryR`°dONLNdßZo)0 and R`°dONLNd¨oì)detailR`°dONLNd≤ì¡)$  code pair °dONLNdΩlÍ(lkCmErBadPictureNumber°dONLNd“͡)~ and °dONLNd◊ˇq)kCmErBadPictNumInfo°dONLNdÍqv)r. °dONLNdÌ!l-√(*lThe category code rR`°dONLNd!√-)Weturned in the ar$¿°dONLNd!-j)Kea pointed to by the $¿°dONLNd&!j-ö)\category$¿°dONLNd.!ö-ÿ)0 parameter pr˜ °dONLNd;!◊-˜)=ovides .°dONLNdB.l:˝(7l!information about the type of err«@°dONLNdc.˝:5)ë or encounterŸ†°dONLNdo.5:ò)8ed. The codes and defi‚ °dONLNdÖ.ò:»)c nitions for .°dONLNdë;lGú(Dlcategory°dONLNdô;úG®)0 arR`°dONLNdú;®G◊) e listed in R`°dONLNd®;◊G›)/Tg`°dONLNd©;‹G)able 2-2g`°dONLNd±;G,)$
  1542. . Codes ar9¿°dONLNdª;,Gî),e hexadecimal values. ˇ@ˇ ˇˇˇˇ@
  1543. ˇ·ˇ‚7^
  1544. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1545. , (‡2-494^H¿
  1546. gHn4gHn jäj
  1547. ˇ·ˇ‚7^    °dONLNd\äg±(dä    Table 2-2°dONLNd
  1548. \»g‰)>QuickT@°dONLNd\‰g )7ake 100 driver error category codes, mnemonics, and defi
  1549. °dONLNdH\ g‰)Ênitions°dONLNdRtä†(|äCode°dONLNdWtÆ⁄)$Mnemonic°dONLNd`t>N)êDefiİdONLNddtOg)nition
  1550. °dONLNdlÇäéî(ãä00,
  1551. Courier.°dONLNdoÇÆéˆ)$ kCmErNoError.°dONLNd|Ç>éfl)ê#The function completed successfullyg°dONLNdüÇfié‡)†.°dONLNd¢îä†î(ùä01.°dONLNd•îÆ†)$kCmErNoBattery.°dONLNd¥î>†q)ê Battery lowµ¿°dONLNdøîp†Ì)2, cannot complete operation.°dONLNd›¶ä≤î(Øä02.°dONLNd‡¶Æ≤)$kCmErMemoryFull.°dONLNd¶>≤˚)ê*Image memory is full, cannot take another °dONLNd±>ΩX* picturÈ@°dONLNd ±XΩ_)e.°dONLNd$√äœî(Ãä03.°dONLNd'√Æœ)$kCmErFlashNotReady.°dONLNd:√>œm)ê Flash not rT °dONLNdE√mœò)/
  1552. eady for rI†°dONLNdO√òœÔ)+equested operation.°dONLNdd’ä·î(fiä04.°dONLNdg’Æ·2)$kCmErImageMemoryDefect.°dONLNd~’>·Z)êAn err‡°dONLNdÑ’[·))or has been detected in the camera image °dONLNd≠‡>Ïc(È>memoryÕ °dONLNd≥‡bÏd)$.°dONLNd∂Úä˛î(˚ä05.°dONLNdπÚÆ˛)$kCmErAttention.°dONLNd»Ú>˛E)êA∫†°dONLNd…ÚE˛K) rˇ†°dONLNdÀÚK˛â)ecoverable errL`°dONLNdŸÚä˛)?or or camera state change has °dONLNd˜˝>    (>/been detected. See also the description of the .°dONLNd&>∞* kCmErCommandAborted°dONLNd9∞fi)r  detail errR`°dONLNdDfi
  1553. ). or code in .°dONLNdO>D(>Tµ¿°dONLNdPCe)able 2-3√@°dONLNdXeg)".°dONLNd[%ä1î(.ä06.°dONLNd^%Æ1)$kCmErParityError.°dONLNdo%>1Z)êAn err‡°dONLNdu%[1Ì) or has been detected in the RAM.°dONLNdó7äCî(@ä07.°dONLNdö7ÆC)$kCmErTimeoutError.°dONLNd¨7>CE)êA∫†°dONLNd≠7ECõ) communication errl`°dONLNdø7úC)Wor between the camera °dONLNd’B>Nî(K>and host has occurr÷İdONLNdËBîN°)Ved.°dONLNdÌTä`î(]ä08.°dONLNdTÆ`)$kCmErHardwareError.°dONLNdT>`])êAn unr6 °dONLNd    T^`û) ecoverable harò°dONLNdTû`µ)@dwarœ¿°dONLNdTµ`»)e errö†°dONLNd T…`)or has occurr%‡°dONLNd-T`):ed.°dONLNd2färî(oä09.°dONLNd5fÆr)$kCmErBadParameter.°dONLNdGf>r])êAn unr6 °dONLNdMf^rú) ecoverable errLJ°dONLNd[fúr¯)>or caused by invalid °dONLNdpq>}÷(z>$values in a function call has occurrHİdONLNdîq◊}‰)ôed.°dONLNdôÉäèñ(åä0A.°dONLNdúÉÆè,)$kCmErBadPictureNumber.°dONLNd≤É>èä)êAn invalid picturŒ`°dONLNd√Éäè¯)Le number parameter has °dONLNd⁄é>öZ(ó>occurrî¿°dONLNd‡éZöi)ed. °dONLNdʆä¨ï(©äFF.°dONLNdȆƨ)$kCmErUnknownError.°dONLNd˚†>¨R)êCall â`°dONLNd†R¨Ó)$Apple if you get this category code.°dONLNd%≤äæ‚(ªäAs described earlierÍ¿°dONLNd9≤·æ    )W
  1554. , each err˜@°dONLNdC≤    æå)(or category has an associated 1†°dONLNda≤çæ•)Ñdetail* °dONLNdg≤¶æ) code. The detail code .°dONLNd~øäÀé(»ärR`°dONLNdøéÀŸ)eturned in the ar$¿°dONLNdêøŸÀ5)Kea pointed to by the $¿°dONLNd•ø5ÀY)\detail$¿°dONLNd´øYÀó)$ parameter pr˜ °dONLNd∏øñÀ‘)=ovides specifi˜ °dONLNdΔø‘À)>c information °dONLNd‘Ãäÿƒ(’äabout the errR`°dONLNd·Ãÿ):or that occurr$¿°dONLNdÔÃÿõ)<!ed. The codes, mnemonics, and defi$¿°dONLNdÃõÿÀ)õ nitions for $¿°dONLNdÃÀÿÔ)0detail$¿°dONLNd#ÃÔÿ˚)$ ar˜ °dONLNd&Ã˙ÿ) e .°dONLNd(ŸäÂØ(‚ä
  1555. listed in o@°dONLNd2Ÿ∞Â∂)&T•°dONLNd3ŸµÂ◊)able 2-3≤İdONLNd;Ÿ◊Â)"
  1556. . Codes ar¶`°dONLNdEŸÂf),e hexadecimal values. ˇ@ˇ ˇˇˇˇ@
  1557. ˇ·ˇ‚7^
  1558. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1559. (‡*2-50    )BQuickT@)ake 100 Device Driver Reference4^*¿¯
  1560. g*n¯4g*n¯ jlj¯
  1561. ˇ·ˇ‚7^°dONLNd\lgì(dl    Table 2-3°dONLNd
  1562. \™gΔ)>QuickT@°dONLNd\Δgª)<ake 100 device driver error detail codes, mnemonics, and defiã°dONLNdM\ªg◊)ınitions °dONLNdXtlÇ(|lCode°dONLNd]têº)$Mnemonic°dONLNdft 0)êDefiİdONLNdjt1I)nition
  1563. °dONLNdrÇlév(ãl00,
  1564. Courier.°dONLNduÇêéÿ)$ kCmErNoError.°dONLNdÇÇ é¡)ê#The function completed successfullyg°dONLNd•Ç¿éfl)†, no errØ °dONLNd≠ÇfléË)orY‡°dONLNdØÇËéÍ)    .°dONLNd≤îl†v(ùl01.°dONLNdµîꆉ)$kCmErNoBattery.°dONLNdƒî †S)ê Battery lowµ¿°dONLNdœîR†œ)2, cannot complete operation.°dONLNd̶l≤v(Øl02.°dONLNd¶ê≤Í)$kCmErMemoryFull.°dONLNd¶ ≤›)ê*Image memory is full, cannot take another °dONLNd*± Ω:* picturÈ@°dONLNd0±:ΩA)e.°dONLNd4√lœv(Ãl03.°dONLNd7√Ꜹ)$kCmErFlashNotReady.°dONLNdJ√ œO)ê Flash not rT °dONLNdU√Oœz)/
  1565. eady for rI†°dONLNd_√zœ—)+equested operation.°dONLNdt’l·v(fil04.°dONLNdw’ê·)$kCmErImageMemoryDefect.°dONLNdé’ ·<)êAn err‡°dONLNdî’=·”)"or has been detected in the image °dONLNd∂‡ ÏE(È memoryÕ °dONLNdº‡DÏI)$. °dONLNd¿Úl˛v(˚l06.°dONLNd√Úê˛)$kCmErParityError.°dONLNd‘Ú ˛')êA∫†°dONLNd’Ú'˛S)  parity errÍİdONLNd‡ÚS˛À),or has been detected while °dONLNd˚˝     )( prG °dONLNd˝˝*    ™)
  1566. ocessing the last command frí@°dONLNd˝™    ‡)Ä om the host.°dONLNd'lv(l07.°dONLNd*êˆ)$kCmErTimeoutError.°dONLNd< x)êThe host timed out. °dONLNdR!l-w(*l0B.°dONLNdU!ê-)$kCmErGeneralHWError.°dONLNdi! -X)ê An unspecififl@°dONLNdu!X-t)8ed har€°dONLNd{!t-ã)dwar¿°dONLNd!å-ü)e err›†°dONLNdÑ!ü-”) or has been °dONLNdê, 8H(5     detected.°dONLNdõ>lJx(Gl0C.°dONLNdû>êJˆ)$kCmErCPUError4Bit.°dONLNd∞> J<)êAn err‡°dONLNd∂>=Jı)*or has been detected inside the 4-bit CPU.°dONLNd‚Pl\x(Yl0D.°dONLNdÂPê\ˆ)$kCmErCPUError8Bit.°dONLNd˜P \<)êAn err‡°dONLNd˝P=\ı)*or has been detected inside the 8-bit CPU.°dONLNd)blnw(kl0E.°dONLNd,bênfi)$kCmErDSPError.°dONLNd:b n<)êAn err‡°dONLNd@b=n⁄)#or has been detected inside the DSPdİdONLNdcbŸn€)ú.°dONLNdftlÄv(}l0F.°dONLNditêÄ)$kCmErFrameMemoryError.°dONLNdt Ä<)êAn err‡°dONLNdÖt=Ä—)"or has been detected in the frame °dONLNdß ãE(à memoryÕ °dONLNd≠DãF)$.°dONLNd∞ëlùv(öl10.°dONLNd≥ëêù)$kCmErImageMemoryError.°dONLNd…ë ùÇ)êAn image memory erró‡°dONLNd‹ëÇùŒ)bor other than the .°dONLNdÓú ®§(• kCmErImageMemoryDefect°dONLNdú§®≥)Ñ errR`°dONLNdú≥®Á) or has been .°dONLNdß ≥J(∞ 
  1567. detected. °dONLNd πl≈q(¬l1Û`°dONLNd!πp≈u)1.°dONLNd#πê≈) kCmErInvalidCmdCode.°dONLNd7π ≈})êThe operation code fi9 °dONLNdLπ~≈Í)^eld of the last command °dONLNddƒ –‚(Õ -block issued by the host contains an invalid °dONLNd뜠€:* value.°dONLNdô·lÌv(Íl12.°dONLNdú·êÌ)$kCmErInvalidControlCmd.°dONLNd≥· Ì\)êThe last contrb°dONLNd¡·\ÌÊ)<ol command code is unknown. °dONLNdflÛlˇv(¸l13.°dONLNd‚Ûêˇ)$kCmErInvalidCmdData.°dONLNdˆÛ ˇS)ê
  1568. One or mormİdONLNdÛSˇ´)3e parameters specifis@°dONLNdÛ´ˇ”)X
  1569. ed in the °dONLNd˛ 
  1570. ı( -command descriptor block in the last command °dONLNdK     '* frò‡°dONLNdM    '—)'om the host contains an invalid value. °dONLNdvl'v($l14.°dONLNdyê')$kCmErInvalidData.°dONLNdä 'ù)êAn invalid value was specifiΔ†°dONLNd¶ù'ı)}ed in the additional °dONLNdª& 2„(/ +data following the last command descriptor °dONLNdÊ1 =:* block.°dONLNdÓClOv(Ll15.°dONLNdÒCêO“)$ kCmErNoData.°dONLNd˝C O÷)ê+No additional data to be sent to the host. °dONLNd*Ulav(^l16.°dONLNd-Uêa)$kCmErBadPicNumImage.°dONLNdAU a')êA∫†°dONLNdBU'aD) pictur£‡°dONLNdIUDa])e corr䇰dONLNdOU]aΔ)esponding to the specifi¬Ä°dONLNdgUΔaÌ)i    ed picturë °dONLNdpUÓaı)(e °dONLNdr` lÑ(i number does not exist.°dONLNdärl~v({l17.°dONLNdçrê~)$kCmErBadPictNumInfo°dONLNd°r ~()êAÛ`°dONLNd¢r'~)) Û`°dONLNd£r)~w)CmPictureInfoÛ`°dONLNd∞rw~ù)N     data strfl`°dONLNdπrù~≥)&uctur±¿°dONLNdær≥~∫)e .°dONLNd¿} â1(Ü corr`°dONLNdƒ}2âõ)esponding to the specifiU°dONLNd‹}õâ¬)i    ed pictur#†°dONLNdÂ}√âÔ)(    e number °dONLNdÓà î^(ë does not exist.X°dONLNd˛¨ÿµ¯+∏"    continuedˇÍ@ˇ ˇˇˇˇ@
  1571. ˇ·ˇ‚7^
  1572. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1573. , (‡2-514^H¿    °dONLNd\äg±(dä    Table 2-3°dONLNd
  1574. \»g‰)>QuickT@°dONLNd\‰gŸ)<ake 100 device driver error detail codes, mnemonics, and defiã°dONLNdM\Ÿgı)ınitions 
  1575. qHx4qHx tät
  1576. ˇ·ˇ‚7^°dONLNdUf»qı(n» (continued)°dONLNdc~äâ†(ÜäCode°dONLNdh~Æâ⁄)$Mnemonic°dONLNdq~>âN)êDefiİdONLNdu~Oâg)nition
  1577. °dONLNd}åäòî(ïä18,
  1578. Courier.°dONLNdÄåÆò )$kCmErCommandAborted.°dONLNdîå>òp)ê
  1579. An asynchr<¿°dONLNdûåqò‰)3onous operation has been °dONLNd∑ó>£¯(†>,successfully terminated by the host. If the °dONLNd„¢>ƃ* application cancels an asynchrÕ@°dONLNd¢ƒÆ)Üonous operation °dONLNd≠>π(∂>3and if the operation is successfully canceled, the °dONLNdD∏>ƒh*
  1580. callback rç°dONLNdN∏hƒ⁄)*outine for that operation rL°dONLNdi∏€ƒ)s    eturns a .°dONLNdr√>œ|(Ã>status code of °dONLNdÅ√|œ )>CmCameraError¬†°dONLNdé√…œŒ)M. d@°dONLNdê√Œœ÷)A◊†°dONLNdë√’œˆ)     call to ˇ˛ñŒ°dONLNdöŒ>⁄í(◊>CmGetErrorInfoˇˇáö°dONLNd®Œí⁄√)T  will then rÈ.°dONLNd¥Œ√⁄)1eturn the category °dONLNd«Ÿ>Âú(‚>and detail code pair °dONLNd‹ŸúÂ)^kCmErAttention°dONLNdÍŸÂ)T and °dONLNdÔ‰>∞(Ì>kCmErCommandAborted°dONLNd‰∞∑)r . .°dONLNdˆäî(ˇä19.°dONLNd
  1581. ˆÆb)$kCmErTooManyImageMemoryDefects.°dONLNd)>Z+ê An err‡°dONLNd/[Ò)"or has been detected in the image °dONLNdQ >∏(>memory after all of the spar7°dONLNdm π){e image memory °dONLNd|>#•( >blocks have been used. 
  1582. /H=40H=    °dONLNdî.ä9ù(6äNote
  1583. ˇ·ˇ‚7^
  1584. .°dONLNdô;äGfi*CmGetErrorInfo°dONLNdß;fiG)T itself may rR`°dONLNd¥;G.)7eturn R`°dONLNd∫;.GÇ)kCmCameraErrorï°dONLNd»;ÅGÑ)S.,Zapf Dingbats.ï°dONLNd >âFè)u
  1585. .„°dONLNdÀ;èGë) °dONLNdÕLäXÀ(UäThis function rR`°dONLNd‹LÀXË)Aeturns R`°dONLNd„LËX)noErrR`°dONLNdËLX )8 when called without your application having detected a °dONLNd Yäefi(bäkCmCameraError°dONLNd.YfieÌ)T errR`°dONLNd2YÌeˆ)orï°dONLNd4YıeN). In this case, the arg`°dONLNdJYNeú)Yeas pointed to by g`°dONLNd\YúeÃ)Ncategoryg`°dONLNddYÃe·)0 and g`°dONLNdiY·e)detailg`°dONLNdoYe)$ °dONLNdpfär⁄(oäwill both contain °dONLNdÇf⁄r")P kCmErNoError¬†°dONLNdéf!r$)G..°dONLNdêåHïb(ìHRESULëİdONLNdïåbïÜ)T CODES
  1586. .°dONLNdùöä¶û+(The °dONLNd°öû¶Ú)CmGetErrorInfo°dONLNdØöÚ¶)T  function rR`°dONLNd∫ö¶;),eturns R`°dONLNd¡ö;¶Y)noErrR`°dONLNdΔöY¶r) if err$¿°dONLNdÕör¶ˇ) or information has successfully °dONLNdÌßä≥§(∞äbeen rR`°dONLNdÛß§≥’) etrieved fr$¿°dONLNd˛ß’≥*)1om the camera curr˜ °dONLNdß)≥ë)Tently connected. The ar…İdONLNd'ßë≥fl)heas pointed to by …İdONLNd9ßfl≥)Ncategory…İdONLNdAß≥)0 °dONLNdB¥ä¿ù(Ωäand °dONLNdF¥ù¿¡)detail°dONLNdL¥¡¿L)$ contain detailed information rR`°dONLNdk¥L¿™)ãelated to the last err$¿°dONLNdÅ¥™¿·)^or detected. .°dONLNdèΔä“≠(œä    If an errÖ°dONLNdòΔ≠“)#or is detected, the value rù†°dONLNd≥Δ“¶)o eturned is one of the following:.°dONLNd‘”äflÃ(‹ä kCmAIPError., °dONLNd‡”3flJ)©-6201°dONLNdÊ”bflî)/
  1587. An asynchr<¿°dONLNd”ïflı)3onous operation is alr5İdONLNd”ıfl )`eady °dONLNd fibÍw(Ábin prć°dONLNdfiwÍÖ)ogrJİdONLNdfiÜÍò)ess. .°dONLNdÈäıfi(ÚäkCmBadArgError., °dONLNd(È3ıJ)©-6204°dONLNd.ÈbıÒ)/ Parameter is or contains an addr‰ °dONLNdNÈÒı )èess of °dONLNdUÙbø(˝ban invalid data item. .°dONLNdlˇä fi(äkCmCameraError., °dONLNd{ˇ3 J)©-6200°dONLNdŎb p)/ErrS`°dONLNdÑˇp ˚) or detected by the camera. Call .°dONLNd§
  1588. b∂(bCmGetErrorInfo°dONLNd≤
  1589. ∂π)T.°dONLNd¥ä!(äkCmCameraNotFoundError., °dONLNdÀ3!J)©-6206°dONLNd—b!)/&Device connected to the port is not a °dONLNd˜ b,Ç* QuickTÄİdONLNd˝ Ç,˚) ake 100 camera. Macintosh °dONLNd+b7û(4bplatform only_İdONLNd$+û7£)<. .°dONLNd'6äB“(?ä kCmCommError., °dONLNd463BJ)©-6214°dONLNd:6bBi)/A∫†°dONLNd;6iB⁄) serial communication err∂`°dONLNdT6⁄B)q    or occurr≥@°dONLNd]6B)(ed. °dONLNdaAbMl(JbWÛ`°dONLNdbAkMÀ)    indows platform only1‡°dONLNdvAÀM–)`. .°dONLNdyLäXÍ(UäkCmNoMemoryError., °dONLNdäL3XJ)©-6209°dONLNdêLbXÙ)/ System failed to allocate memory=`°dONLNd∞LÙX˘)í. °dONLNd≤Wbcl(`bWÛ`°dONLNd≥WkcÀ)    indows platform only1‡°dONLNd«WÀc–)`. .°dONLNd bän(käkCmNotConnectedErrorˇˇ›î, ˇ»°dONLNdflb3nJ)©-6208.°dONLNdÂbbni)/A∫†°dONLNdÊbin
  1590. )$ connection with the camera has not °dONLNd
  1591. mbyó(vb been made. .°dONLNdxäщ(ÅäkCmNotOpenError.∏¿°dONLNd&x3ÑE)©-621°dONLNd*xEÑJ)1°dONLNd,xbÑñ)
  1592. The QuickTº@°dONLNd6xïÑ)3ake 100 driver has not been °dONLNdRÉbèì(åbinitialized. .°dONLNd`éäöÍ(óäkCmProtocolError., °dONLNdqé3öJ)©-6212°dONLNdwébök)/PrN†°dONLNdyélöñ)
  1593.  
  1594. otocol errK`°dONLNdÉéñö
  1595. )*or during communication °dONLNdõôb•ô(¢b with QuickTS†°dONLNd¶ôô•Î)7ake 100 camera. W @°dONLNd∑ôΕ)Rindows °dONLNdæ§b∞û(≠bplatform only_İdONLNdÀ§û∞£)<. ˇ@ˇ ˇˇˇˇ@
  1596. ˇ·ˇ‚7^
  1597. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1598. (‡*2-52    )BQuickT@)ake 100 Device Driver Reference4^*¿¯°dONLNd\*eQ(c*SEE ALSO
  1599. °dONLNd    jlvù+B
  1600. All QuickTòİdONLNdjúv)0ake 100 driver functions 
  1601. ¶*د4ß*Ư ®*®˛
  1602. ˇ·ˇ‚7^ °dONLNd-ô*ßã(£*CmCheckIfReadyˇˇˇˇˇˇ(£Ú2,
  1603. Courier
  1604. .°dONLNd=∏lƒû(¡l3pascal OSErr CmCheckIfReady(CameraData cameraData);°dONLNdq–l‹®*
  1605. cameraData°dONLNd|–Æ‹ )BThe private data strl°dONLNdê– ‹!)]uctur>`°dONLNdï–!‹,)e r¿°dONLNdò–,‹]) eturned by ¿°dONLNd£–]‹•)1 CmOpenDriver¿°dONLNdØ–•‹ÿ)H  when your .°dONLNd∫‹ÆË0(ÂÆapplication opens the QuickT‰`°dONLNd÷‹/Ëå)Åake 100 device driver‡°dONLNd΋çËí)^. °dONLNdÓ* c(    * DESCRIPTION
  1606. .°dONLNd˙lÄ+BThe °dONLNd˛Ä‘)CmCheckIfReady°dONLNd ‘†)T, function determines whether the camera currR`°dONLNd8†Ò)Ãently connected is .°dONLNdKl(o(%lrE°dONLNdLp()#eady for subsequent host command prM¿°dONLNdo(ã)™ocessing. This function pr¨‡°dONLNdâã(Ú)qovides a simple way to °dONLNd†)l5Å(2lconfiC‡°dONLNd•)Ç5«)rm that the curr̰dONLNdµ)«5∞)E7ently connected camera is still connected to the host. °dONLNdÌP*YD(W*RESULëİdONLNdÚPDYh)T CODES
  1607. .°dONLNd˙]li¿+(CmCheckIfReady°dONLNd]¿iΔ)T rR`°dONLNd
  1608. ]Δi„)eturns R`°dONLNd]„i)noErrR`°dONLNd]iP) if the camera is r$¿°dONLNd)]Pi~)O
  1609. eady to pr˜ °dONLNd3]}iÕ)-ocess commands fr…İdONLNdD]ÕiÓ)Pom the .°dONLNdKjlv¨(slhost computer Ä°dONLNdXj´vÔ)?. Otherwise, it r, °dONLNdijvÖ)E#eturns one of the values listed her)`°dONLNdåjÖvé)ïe: .°dONLNdêwlÉÆ(Äl kCmAIPError., °dONLNdúwÉ,)©-6201°dONLNd¢wDÉv)/
  1610. An asynchr<¿°dONLNd¨wwÉ◊)3onous operation is alr5İdONLNd¬w◊ÉÓ)`eady °dONLNd«ÇDéY(ãDin prć°dONLNdÃÇYég)ogrJİdONLNdœÇhéÑ)ess. WİdONLNd’ÇÑé‰)indows platform only@°dONLNdÈÇ„éÂ)_..°dONLNdÎçlô¿(ñlkCmBadArgError., °dONLNd˙çô,)©-6204°dONLNdçDô”)/ Parameter is or contains an addr‰ °dONLNd ç”ôÓ)èess of °dONLNd'òD§ü(°Dan invalid data item..°dONLNd=£lØ¿(¨lkCmCameraError., °dONLNdL£Ø,)©-6200°dONLNdR£DØR)/ErrS`°dONLNdU£RØ›) or detected by the camera. Call .°dONLNduÆD∫ò(∑DCmGetErrorInfo°dONLNdÉÆò∫ù)T. °dONLNdÜπl≈(¬lkCmCameraNotFoundError., °dONLNdùπ≈,)©-6206°dONLNd£πD≈Á)/&Device connected to the port is not a °dONLNd…ƒD–d* QuickTÄİdONLNdœƒd–›) ake 100 camera. Macintosh °dONLNdÈœD€Ä(ÿDplatform only_İdONLNdˆœÄ€Ö)<. .°dONLNd˘⁄lÊ¥(„l kCmCommError., °dONLNd⁄Ê,)©-6214°dONLNd ⁄DÊK)/A∫†°dONLNd⁄Kʺ) serial communication err∂`°dONLNd&⁄ºÊ‰)q    or occurr≥@°dONLNd/⁄‰ÊÛ)(ed. °dONLNd3ÂDÒN(ÓDWÛ`°dONLNd4ÂMÒ≠)    indows platform only1‡°dONLNdHÂ≠Ò≤)`. .°dONLNdKl¸Ã(˘lkCmNoMemoryError., °dONLNd\¸,)©-6209°dONLNdbD¸÷)/ System failed to allocate memory=`°dONLNdÇ÷¸€)í. °dONLNdÑ˚DN(DWÛ`°dONLNdÖ˚M≠)    indows platform only1‡°dONLNdô˚≠≤)`. .°dONLNdúl‰(lkCmNotConnectedError., °dONLNd±,)©-6208°dONLNd∑DK)/A∫†°dONLNd∏KÏ)$ connection with the camera has not °dONLNd‹Dy(D been made. .°dONLNdËl(Δ(%lkCmNotOpenError.∏¿°dONLNd¯(')©-621°dONLNd¸'(,)1°dONLNd˛D(x)
  1611. The QuickTº@°dONLNdw(Ú)3ake 100 driver has not been °dONLNd$'D3s(0D initialized..°dONLNd12l>Ã(;lkCmProtocolError., °dONLNdB2>,)©-6212°dONLNdH2D>M)/PrN†°dONLNdJ2N>x)
  1612.  
  1613. otocol errK`°dONLNdT2x>Ï)*or during communication °dONLNdl=DIÉ(FDwith a QuickT”†°dONLNdy=ÇI‘)>ake 100 camera. W†@°dONLNdä=‘I˜)Rindows °dONLNdëHDTÄ(QDplatform only_İdONLNdûHÄTÖ)<. °dONLNd°m*vQ(t*SEE ALSO
  1614. .°dONLNd™zlÜ®+B
  1615. CmSelfTest°dONLNd¥z®ÜÚ)<, described next; °dONLNdΔzÚÜF)JCmGetErrorInfo°dONLNd‘zFÜT)T on °dONLNdÿzTÜl)page °dONLNd›zlÜ)2-48ˇ@ˇ ˇˇˇˇ@
  1616. ˇ·ˇ‚7^
  1617. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1618. , (‡2-534^H¿
  1619. jHr4jHr lHl
  1620. ˇ·ˇ‚7^ °dONLNd\Hjy(fHCmSelfT~İdONLNd\xjá)0estˇˇˇˇˇˇ(f2,
  1621. Courier
  1622. .°dONLNd {äá™(Ñä0pascal OSErr CmSelfTest(CameraData cameraData); °dONLNd=ìäüΔ*
  1623. cameraData°dONLNdHìÃü))BThe private data strl°dONLNd\ì)ü?)]uctur>`°dONLNdaì?üJ)e r¿°dONLNddìJü{) eturned by ¿°dONLNdoì{ü√)1 CmOpenDriver¿°dONLNd{ì√üˆ)H  when your .°dONLNdÜüôN(®Ãapplication opens the QuickT‰`°dONLNd¢üM´™)Åake 100 device driver‡°dONLNd∑ü´´∞)^. °dONLNd∫≈HŒÅ(ÃH DESCRIPTION
  1624. .°dONLNdΔ“äfi+BThe application calls the °dONLNd‡“fi<)v
  1625. CmSelfTest°dONLNdÍ“<fi)<5 function to trigger the diagnostics test built into .°dONLNdfläΜ(Ëäthe camera curr凰dONLNd.flœÎ)Eently connected. °dONLNd@Hb(HRESULëİdONLNdEbÜ)T CODES
  1626. .°dONLNdMäû+(The °dONLNdQû⁄)
  1627. CmSelfTest°dONLNd[⁄)<  function rR`°dONLNdf#),eturns R`°dONLNdm#A)noErrR`°dONLNdrA). if the test has successfully been completed. .°dONLNd°%ä1=(.ä-If the test is not successful, the function r&°dONLNdŒ%>1”)¥#eturns one of the values listed her#@°dONLNdÒ%”1⁄)ïe:.°dONLNdÙ2ä>Ã(;ä kCmAIPError., °dONLNd23>J)©-6201°dONLNd2b>î)/
  1628. An asynchr<¿°dONLNd2ï>ı)3onous operation is alr5İdONLNd&2ı> )`eady °dONLNd+=bIw(Fbin prć°dONLNd0=wIÖ)ogrJİdONLNd3=ÜIò)ess. .°dONLNd9HäTfi(QäkCmBadArgError., °dONLNdHH3TJ)©-6204°dONLNdNHbTÒ)/ Parameter is or contains an addr‰ °dONLNdnHÒT )èess of °dONLNduSb_Ω(\ban invalid data item..°dONLNdã^äjfi(gäkCmCameraError., °dONLNdö^3jJ)©-6200°dONLNd†^bjp)/ErrS`°dONLNd£^pj˚) or detected by the camera. Call .°dONLNd√ibu∂(rbCmGetErrorInfo°dONLNd—i∂uπ)T.°dONLNd”täÄ(}äkCmCameraNotFoundError., °dONLNdÍt3ÄJ)©-6206°dONLNdtbÄ)/&Device connected to the port is not a °dONLNdbãÇ* QuickTÄİdONLNdÇã˚) ake 100 camera. Macintosh °dONLNd6äbñû(ìbplatform only_İdONLNdCäûñ£)<. .°dONLNdFïä°“(ûä kCmCommError., °dONLNdSï3°J)©-6214°dONLNdYïb°i)/A∫†°dONLNdZïi°⁄) serial communication err∂`°dONLNdsï⁄°)q    or occurr≥@°dONLNd|ï°)(ed. °dONLNdĆb¨l(©bWÛ`°dONLNdņk¨À)    indows platform only1‡°dONLNdï†À¨–)`. .°dONLNdò´ä∑Í(¥äkCmNoMemoryError., °dONLNd©´3∑J)©-6209°dONLNdØ´b∑Ù)/ System failed to allocate memory=`°dONLNdœ´Ù∑˘)í. °dONLNd—∂b¬l(øbWÛ`°dONLNd“∂k¬À)    indows platform only1‡°dONLNdÊ∂À¬Õ)`..°dONLNdË¡äÕ( äkCmNotConnectedError., °dONLNd˝¡3ÕJ)©-6208°dONLNd¡bÕi)/A∫†°dONLNd¡iÕ
  1629. )$ connection with the camera has not °dONLNd(Ãbÿó(’b been made. .°dONLNd4◊䄉(‡äkCmNotOpenError.∏¿°dONLNdD◊3„E)©-621°dONLNdH◊E„J)1°dONLNdJ◊b„ñ)
  1630. The QuickTº@°dONLNdT◊ï„)3ake 100 driver has not been °dONLNdp‚bÓì(Îbinitialized. .°dONLNd~Ìä˘Í(ˆäkCmProtocolError., °dONLNdèÌ3˘J)©-6212°dONLNdïÌb˘k)/PrN†°dONLNdóÌl˘ñ)
  1631.  
  1632. otocol errK`°dONLNd°Ìñ˘
  1633. )*or during communication °dONLNdπ¯b°(bwith a QuickT”†°dONLNdΔ¯†Ú)>ake 100 camera. W†@°dONLNd◊¯Ú)Rindows °dONLNdfibû( bplatform only_İdONLNdÎû£)<. °dONLNdÓ(H1o(/HSEE ALSO
  1634. .°dONLNd˜5äAfi+BCmCheckIfReady°dONLNd5fiAÏ)T on °dONLNd    5ÏA)page °dONLNd5A)2-52°dONLNd5A), °dONLNd5Ap)CmGetErrorInfo°dONLNd"5pA~)T on °dONLNd&5~Añ)page °dONLNd+5ñA©)2-48°dONLNd/5©A´) ˇ@ˇ ˇˇˇˇ@
  1635. ˇ·ˇ‚7^
  1636. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1637. (‡*2-54    )BQuickT@)ake 100 Device Driver Reference4^*¿¯
  1638. j*q¯4j*q¯ l*l˛
  1639. ˇ·ˇ‚7^ °dONLNd\*j€(f*Retrieving and Capturing Imagesˇˇˇˇˇˇ(fÚ2
  1640. °dONLNd!ql}“(zlThe functions in this grŒ°dONLNd9q“}Ó)foup arë¿°dONLNd?qÔ}) e used to rÅ¿°dONLNdJq}m).etrieve and captur@°dONLNd\qn}ô)Q
  1641. e images. 
  1642. ≠*∂¯4Æ*µ¯ Ø*Ø˛
  1643. ˇ·ˇ‚7^ °dONLNdg†*Ʊ(™*CmGetThumbnailImageˇˇˇˇˇˇ(™Ú2,
  1644. Courier
  1645. .°dONLNd|ølÀº(»l8pascal OSErr CmGetThumbnailImage(CameraData cameraData, °dONLNdºÕÍŸÜ+~unsigned short pictureNo, °dONLNdfi€ÍÁÜ*BufferPtr thumbnailBuffer,°dONLNdÈÍı∂*"unsigned long numberOfBytesToRead,°dONLNd*˜ÍV*Boolean firstRead,°dONLNdDÍn*LongPtr actualBytes); °dONLNd[l)®(&l
  1646. cameraData°dONLNdfÆ) )BThe private data strl°dONLNdz )!)]uctur>`°dONLNd!),)e r¿°dONLNdÇ,)]) eturned by ¿°dONLNdç])•)1 CmOpenDriver¿°dONLNdô•)ÿ)H  when your .°dONLNd§)Æ50(2Æapplication opens the QuickT‰`°dONLNd¿)/5å)Åake 100 device driver‡°dONLNd’)ç5í)^. .°dONLNdÿ9lE¢(Bl    pictureNo.°dONLNd‚9ÆEE)B!The number identifying the picturhİdONLNd9EE€)ó!e whose thumbnail image is to be °dONLNd$EÆQ±(NÆrE°dONLNd%E≤Qÿ)    etrieved..°dONLNd/UlaΔ(^lthumbnailBuffer°dONLNd>UΔa»)Z .°dONLNd@aÆm≈(jÆAddrC¿°dONLNdDaΔm˙)ess of the ars °dONLNdQa˙m$)4
  1647. ea to be fi“†°dONLNd\a$må)*lled with the data that r≤İdONLNduaåmö)heprC@°dONLNdxaõmı)esent the thumbnail °dONLNdåmÆyŒ(vÆimage. .°dONLNdî}lâfi(ÜlnumberOfBytesToRead°dONLNd®âÆï7+B Number of bytes of data to be rR`°dONLNd«â7ï^)â    ead into R`°dONLNd–â^ï∏)'thumbnailBufferï°dONLNdflâ∑ïÒ)Y.  This value .°dONLNdÌïÆ°c(ûÆ*must be a multiple of 512 unless the entir °dONLNdïd°Ê)∂e thumbnail is being transferræ`°dONLNd5ïʰÛ)Çed °dONLNd8°Æ≠fi(™ÆKin a single call or the last block of data in a multiple-call sequence is rC`°dONLNdɰfl≠Û(™flead. .°dONLNdâ±lΩ¢(∫l    firstRead°dONLNdí±¢Ω§)6 °dONLNdî±ÆΩ∏) If °dONLNdó±∏Ω–)
  1648. TRUE°dONLNdõ±–Ω3), uploads the image frR`°dONLNd±±3ΩÑ)com the beginning. °dONLNdƒ¡lÕÆ( l actualBytes.°dONLNd–ÕÆŸ≈+B AddrC¿°dONLNd‘ÕΔŸ˜) ess of an arg °dONLNd‡Õ˜Ÿj)1ea to which this function r«`°dONLNd˚ÕjŸ„)seturns the number of bytes .°dONLNdŸÆ€(‚Æ
  1649. actually rR`°dONLNd Ÿ€Â)-    ead into R`°dONLNd)ŸÂ\)'thumbnailBufferï°dONLNd8Ÿ[Â`)Y. .°dONLNd;ˇ*c(* DESCRIPTION
  1650. ˇˇŸ".°dONLNdG l+BThe ˇˇãfY"°dONLNdK ÄÚ)CmGetThumbnailImageˇˇŸ"Y"°dONLNd^ Ú)r  function r›Δ°dONLNdi ˜)+1etrieves the thumbnail version of the image of a .°dONLNdöl%¥("lparticular pictur€ °dONLNd´¥%√)He. T⁄İdONLNdØ√%Ô)    o make prC‡°dONLNd∏%!)- esenting pr∑‡°dONLNd√!%fi)1+eviews of an image in an application easierÕİdONLNdÓfi%Û)Ω, the °dONLNdÙ&l2å(/lQuickTÄİdONLNd˙&å2ı) Qake 100 camera is capable of sending the host computer a miniaturized version of °dONLNdK3l?´(<lthe image corr‡°dONLNdY3¨? )@esponding to a specifij °dONLNdo3 ?3)`    ed pictur8¿°dONLNdx34?Ê)(+e. This version of the image is called the °dONLNd£@lLº(Ilthumbnail image. .°dONLNdµRl^z*<The total number of bytes in a thumbnail image is 2400. The °dONLNdÒRz^Ï([znumberOfBytesToRead°dONLNdRÏ^Ó)r .°dONLNd_lk¿(hlQparameter may be less than that. In this case, multiple calls to this function arÒ °dONLNdV_¿kÙ(h¿ e necessary °dONLNdbllx¨(ulto get the entirª °dONLNdrl¨x)@e thumbnail image.2İdONLNdÑlx)V .°dONLNdÜ~läˇ(álWhen making multiple calls to rR`°dONLNd•~ˇä≠)ì'etrieve an image, the application sets R`°dONLNdÃ~≠ä„)Æ    firstReadR`°dONLNd’~„ä)6 to ˇˇͰdONLNdŸãlóÑ(îlTRUEˇˇ≠N°dONLNd›ãÑóõ) the f´°dONLNd„ãõóÿ)Lirst time the function is called on a particular image, and then sets it to ˇˇÍ“ưdONLNd/ãÿóˆ(îÿFALSEˇˇ≠N“ưdONLNd4ãˆó˜) .°dONLNd5òl§K(°l6for the subsequent calls to this function to get the r‹°dONLNdkòK§‰)fl"emaining blocks of the image. The .°dONLNdç•l±v(ÆlarR`°dONLNdè•v±)
  1651. #ea pointed to by the last parameterï°dONLNd≤•±)ü, ï°dONLNd¥•±\) actualBytesï°dONLNdø•\±·)B, contains the number of bytes °dONLNdfi≤læΩ(ªlactually transferrR`°dONLNd≤Ωæ˛)Qed into the buf$¿°dONLNdˇ≤˛æJ)Afer pointed to by $¿°dONLNd≤Jæ§)LthumbnailBufferg`°dONLNd ≤£æ¶)Y.ˇ ‘@ˇ ˇˇˇˇ@
  1652. ˇ·ˇ‚7^
  1653. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1654. , (‡2-554^H¿
  1655. ^Hk4^Hk    °dONLNd\ägù(däNote
  1656. ˇ·ˇ‚7^
  1657. °dONLNd
  1658. iäu±* It is the rh†°dONLNdi±uä)'4esponsibility of the application to allocate the buf⁄@°dONLNdIiäu»)Ÿfer pointed to .°dONLNdXuäÅó(~äby ,
  1659. Courier°dONLNd[uóÅÒ)thumbnailBuffer¬†°dONLNdjuÅı)Y. ,Zapf Dingbats.¬†°dONLNdmx˙Ä)
  1660. u
  1661. °dONLNdoÜäíÎ(èäPIf you plan to have your application upload the image in chunks of blocks, then °dONLNd¿ìäüE*)you should not attempt to call any QuickT‰‡°dONLNdÈìDü›)∫#ake 100 driver function (including .°dONLNd †ä¨¸(©äCmGetThumbnailImage°dONLNd†¸¨G)r invoked on a difR`°dONLNd0†G¨T)Kfer$¿°dONLNd3†T¨d)ent $¿°dONLNd7†d¨ö)    pictureNo$¿°dONLNd@†ö¨)6 parameter) in between °dONLNdW≠äπ‹(∂äsuccessive calls to °dONLNdk≠‹πN)RCmGetThumbnailImage°dONLNd~≠NπÏ)r%. If you do make other calls on a difR`°dONLNd£≠Ïπ˘)ûfer$¿°dONLNd¶≠˘π    )ent .°dONLNd™∫äΔ§(√äpicturÈ@°dONLNd∞∫§Δ¯)e, it causes the curr%°dONLNd≈∫˘Δö)U$ent upload operation to terminate pr¬ °dONLNdÈ∫öΔπ)°ematurn@°dONLNdÔ∫∫Δ«) ely솰dONLNdÚ∫ΔΔÓ)
  1662. , and the .°dONLNd¸«ä”(–äapplication will have to rR`°dONLNd«”Z)westart the upload fr$¿°dONLNd*«Z”¨)Yom the beginning ($¿°dONLNd<«¨”Ù)R firstRead = $¿°dONLNdH«Ù” )HTRUE$¿°dONLNdL« ”))..°dONLNdOŸäÂ(‚äVThe application is expected to know exactly how many times to call this function with ˇˇsË.°dONLNd•ÊäÚ±*the apprΔH°dONLNd≠ʱÚı)'opriate size bufÄx°dONLNdΩʈÚ)E    fer (see ˇ˛[∏hH°dONLNdΔÊÚx)"CmGetPictureInfoˇˇsËhH°dONLNd÷ÊxÚÜ)`). Tˆ0°dONLNd⁄ÊÖÚ¨)
  1663. rying to r∞`°dONLNd‰Ê≠Ú)(ead image data beyond .°dONLNd˙Ûäˇ(¸ä#the actual size of the image will rˇÄ°dONLNdÛˇW)ëesult in an errƒ`°dONLNd,ÛXˇa)=oro °dONLNd.Ûaˇf)    . ˇˇ≤D.°dONLNd1äù(äThe ˇˇÃ2D°dONLNd5û)CmGetThumbnailImageˇˇ≤D2D°dONLNdH`)r function does not rÕ¥°dONLNd\`∞)Peturn until it has ri$°dONLNdp±    )Qetrieved the specifiÕ¨°dONLNdÑ    )Xed .°dONLNdáä(änumber of bytes or it has fiGİdONLNd£Â)w4nished. If you want your application to pursue a difø°dONLNd◊ÂÒ)‰fer°Ä°dONLNd⁄Ò) ent °dONLNdfiä+ó((äthrX¿°dONLNd·ó+)ead of execution while r4 °dONLNd˘+∫)j*etrieving thumbnail data, you should call .°dONLNd#,ä8(5äCmGetThumbnailImageAsync°dONLNd;,8K)ê  instead of °dONLNdG,K8Ω)1CmGetThumbnailImage°dONLNdZ,Ω8¿)r..°dONLNd\>äJù(Gä=For information about decoding the data format of the image r7¿°dONLNdô>ûJ(Gûeturned by this function, .°dONLNd≥KäW¨(Täsee the °dONLNdªK¨W )"CmGetDecompTable°dONLNdÀK Wm)` function described on °dONLNd‚KmWÖ)apage °dONLNdÁKÖWò)2-45°dONLNdÎKòWø)     and the °dONLNdÙXäd&(aäCmGetColorCorrectionMatrix°dONLNdX&dá)ú function described on °dONLNd%Xádü)apage °dONLNd*Xüd≤)2-46°dONLNd.X≤dµ)..°dONLNd0~Háb(ÖHRESULëİdONLNd5~báÜ)T CODES
  1664. .°dONLNd=åäò+( Upon successful completion, the °dONLNd]åòå)êCmGetThumbnailImage°dONLNdpååò∏)r  function rR`°dONLNd{å∏ò’),eturns R`°dONLNdÇå’òÛ)noErrï°dONLNdáåÚò
  1665. ), and °dONLNdçôä•¶(¢äthe arR`°dONLNdìô¶•)ea pointed to by R`°dONLNd§ô•J)JthumbnailBufferR`°dONLNd≥ôJ•])Z is fiR`°dONLNdπô]•Ì)lled with the thumbnail image °dONLNd◊¶ä≤õ(ØäcorrR`°dONLNd€¶õ≤)esponding to the pictur$¿°dONLNdÚ¶≤,)g    e identifi$¿°dONLNd¸¶,≤ä)*ed by the parameter $¿°dONLNd¶ä≤¿)^    pictureNo$¿°dONLNd¶¿≤≈)6. .°dONLNd∏äƒ≠(¡ä    If an errÖ°dONLNd%∏≠ƒ+)#or is detected, this function r®@°dONLNdD∏+ƒ¿)~#eturns one of the values listed her•İdONLNdg∏¿ƒ)ïe. Note that when .°dONLNdy≈ä—§(Œäan errR`°dONLNd≈§—)) or occurs, the content of the ar$¿°dONLNdü≈)—s)Öea pointed to by $¿°dONLNd∞≈s—Õ)JthumbnailBuffer$¿°dONLNdø≈Õ—ı)Z     is undefi$¿°dONLNd…≈ı—)(ned.°dONLNdŒ“äfiÃ(€ä kCmAIPError., °dONLNd⁄“3fiJ)©-6201°dONLNd‡“bfiî)/
  1666. An asynchr<¿°dONLNdÍ“ïfiı)3onous operation is alr5İdONLNd“ıfi )`eady °dONLNd›bÈw(Êbin prć°dONLNd
  1667. ›wÈÖ)ogrJİdONLNd›ÜÈò)ess. .°dONLNdËäÙfi(ÒäkCmBadArgError., °dONLNd"Ë3ÙJ)©-6204°dONLNd(ËbÙÒ)/ Parameter is or contains an addr‰ °dONLNdHËÒÙ )èess of °dONLNdOÛbˇø(¸ban invalid data item. .°dONLNdf˛ä
  1668. fi(äkCmCameraError., °dONLNdu˛3
  1669. J)©-6200°dONLNd{˛b
  1670. p)/ErrS`°dONLNd~˛p
  1671. ˚) or detected by the camera. Call .°dONLNdû    b∂(bCmGetErrorInfo°dONLNd¨    ∂ª)T. °dONLNdØä (äkCmCameraNotFoundError., °dONLNdΔ3 J)©-6206°dONLNdÃb )/&Device connected to the port is not a °dONLNdÚb+Ç* QuickTÄİdONLNd¯Ç+˚) ake 100 camera. Macintosh °dONLNd*b6û(3bplatform only_İdONLNd*û6£)<. .°dONLNd"5äA“(>ä kCmCommError., °dONLNd/53AJ)©-6214°dONLNd55bAi)/A∫†°dONLNd65iA⁄) serial communication err∂`°dONLNdO5⁄A)q    or occurr≥@°dONLNdX5A)(ed. °dONLNd\@bLl(IbWÛ`°dONLNd]@kLÀ)    indows platform only1‡°dONLNdq@ÀL–)`. .°dONLNdtKäWÍ(TäkCmNoMemoryError., °dONLNdÖK3WJ)©-6209°dONLNdãKbWÙ)/ System failed to allocate memory=`°dONLNd´KÙW˘)í. °dONLNd≠Vbbl(_bWÛ`°dONLNdÆVkbÀ)    indows platform only1‡°dONLNd¬VÀb–)`. .°dONLNd≈aäm(jäkCmNotConnectedError., °dONLNd⁄a3mJ)©-6208°dONLNd‡abmi)/A∫†°dONLNd·aim
  1672. )$ connection with the camera has not °dONLNd    lbxó(ub been made. .°dONLNd    wäɉ(ÄäkCmNotOpenError.∏¿°dONLNd    !w3ÉE)©-621°dONLNd    %wEÉJ)1°dONLNd    'wbÉñ)
  1673. The QuickTº@°dONLNd    1wïÉ)3ake 100 driver has not been °dONLNd    MÇbéì(ãbinitialized. .°dONLNd    [çäôÍ(ñäkCmProtocolError., °dONLNd    lç3ôJ)©-6212°dONLNd    rçbôk)/PrN†°dONLNd    tçlôñ)
  1674.  
  1675. otocol errK`°dONLNd    ~çñô
  1676. )*or during communication °dONLNd    ñòb§ô(°b with QuickTS†°dONLNd    °òô§Î)7ake 100 camera. W @°dONLNd    ≤òΧ)Rindows °dONLNd    π£bØû(¨bplatform only_İdONLNd    Δ£û؆)<.ˇ÷@ˇ ˇˇˇˇ@
  1677. ˇ·ˇ‚7^
  1678. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1679. (‡*2-56    )BQuickT@)ake 100 Device Driver Reference4^*¿¯°dONLNd\*eQ(c*SEE ALSO,
  1680. Courier
  1681. .°dONLNd    jlvÃ+BCmGetPictureInfo°dONLNdjÃv⁄)` on °dONLNdj⁄vÚ)page °dONLNd"jÚv)2-29°dONLNd&jv
  1682. ); °dONLNd(j
  1683. vv)CmGetFullSizeImage°dONLNd:jvvÑ)l on °dONLNd>jÑvú)page °dONLNdCjúvØ)2-57°dONLNdGjØv¥); °dONLNdIwlɸ(ÄlCmGetThumbnailImageAsync°dONLNdaw¸ÉF)ê, described next; °dONLNdswFÉö)JCmGetErrorInfo°dONLNdÅwöÉ®)T on °dONLNdÖw®É¿)page °dONLNdäw¿É”)2-48°dONLNdéw”É’) 
  1684. ≥*º¯4¥*ª¯ µ*µ˛
  1685. ˇ·ˇ‚7^ .°dONLNdê¶*¥”(∞*CmGetThumbnailImageAsyncˇˇˇˇˇˇ(∞Ú2
  1686. .°dONLNd™≈l—J(Œl%pascal OSErr CmGetThumbnailImageAsync°dONLNd‘”¥fl>+H(CameraData cameraData,°dONLNd·¥ÌJ*unsigned short pictureNo,°dONLNdÔ¥˚P*BufferPtr thumbnailBuffer,°dONLNd-˝¥    Ä*"unsigned long numberOfBytesToRead,°dONLNdT ¥ *Boolean firstRead,°dONLNdk¥%Ú*5CmAsyncCompletionRoutinePtr asyncCompletionRoutine); °dONLNd°1l=®(:l
  1687. cameraData°dONLNd¨1Æ= )BThe private data strl°dONLNd¿1 =!)]uctur>`°dONLNd≈1!=,)e r¿°dONLNd»1,=]) eturned by ¿°dONLNd”1]=•)1 CmOpenDriver¿°dONLNdfl1•=ÿ)H  when your .°dONLNdÍ=ÆI0(FÆapplication opens the QuickT‰`°dONLNd=/Iå)Åake 100 device driver‡°dONLNd=çIí)^. .°dONLNdMlY¢(Vl    pictureNo.°dONLNd(MÆYE)B!The number identifying the picturhİdONLNdIMEY€)ó!e whose thumbnail image is to be °dONLNdjYÆe⁄(bÆ    uploaded..°dONLNdtiluΔ(rlthumbnailBuffer.°dONLNdÑuÆÅ≈+B AddrC¿°dONLNdàuΔÅ)ess of a data ars‡°dONLNdòuÅ1)A
  1688. ea to be fi”`°dONLNd£u1Åô)*lled with the data that r≥@°dONLNdºuôÅß)heprD°dONLNdøu®Å—)
  1689. esent the °dONLNd…ÅÆç¸(äÆthumbnail image..°dONLNd⁄ëlùfi(ölnumberOfBytesToRead°dONLNdÓùÆ©7+B Number of bytes of data to be rR`°dONLNdù7©^)â    ead into R`°dONLNdù^©∏)'thumbnailBufferï°dONLNd%ù∑©Ô)Y. This value .°dONLNd2©Æµc(≤Æ*must be a multiple of 512 unless the entir °dONLNd\©dµÊ)∂e thumbnail is being transferræ`°dONLNdz©ÊµÛ)Çed °dONLNd}µÆ¡fi(æÆKin a single call or the last block of data in a multiple-call sequence is rC`°dONLNd»µfl¡Û(æflead. .°dONLNdŒ≈l—¢(Œl    firstRead°dONLNdÿ≈Æ—∏)BIf °dONLNd€≈∏—–)
  1690. TRUE°dONLNdfl≈–—), upload starts frR`°dONLNdÒ≈—¬)K$om the beginning of the image specifiR`°dONLNd≈¬—–)ßed.°dONLNd’l·(filasyncCompletionRoutine.°dONLNd1·ÆÌ≈+B AddrC¿°dONLNd5·ΔÌË)Dess of a callback function to be called by the driver when the data °dONLNdyÌÆ˘(ˆÆtransfer is complete.°dONLNdè*c(* DESCRIPTION
  1691. .°dONLNdõ l,Ä+BThe °dONLNdü Ä,)CmGetThumbnailImageAsync°dONLNd∑ ,x)ê function is the asynchrR`°dONLNdœ x,¿)honous version of °dONLNd‡-l9fi(6lCmGetThumbnailImage°dONLNdÛ-fi9)r
  1692.  and is prR`°dONLNd˝-9C)) ovided for W≈¿°dONLNd    -B9Ò);&indows applications that pursue other .°dONLNd/:lFÑ(Cl@activities during the time in which a thumbnail image is being rİdONLNdo:ÖF≥(CÖ etrieved frÚ†°dONLNdz:≤F”)-om the ˇˇŸ".°dONLNdÅGlSÂ(Plcamera. The parameters ar›Δ°dONLNdöGÂSÉ)y$e the same as those supplied to the ˇˇãf¶÷°dONLNdæGÑSˆ)üCmGetThumbnailImageˇˇŸ"¶÷°dONLNd—GˆS˜)r .°dONLNd“Tl`(]l'function, except for the last parameter”†°dONLNd˘T`a)ß, which is an addrô@°dONLNd Tb`Í)O!ess of a callback function to be .°dONLNd,almY(jl4called when the total number of bytes of data specifi°dONLNdaaYmq)Ìed in °dONLNdgaqm„)numberOfBytesToRead°dONLNdza„m¯)r has °dONLNdnlz™(wlbeen transferrR`°dONLNdçn™z8)>!ed to the location pointed to by R`°dONLNdÆn8zí)éthumbnailBufferï°dONLNdΩnëz¨)Y. (See °dONLNdƒ{lá¸(ÑlCmAsyncCompletionRoutine°dONLNd‹{¸á
  1693. )ê on °dONLNd‡{
  1694. á")page °dONLNdÂ{"á5)2-33°dONLNdÈ{5á‘)$ for information about the callback .°dONLNdàlîô(ël function.) °dONLNdöl¶î*The addr∏@°dONLNd!öî¶È)(ess of the callback r/†°dONLNd6öͶæ)V0outine handed to this function must be the one rÛ¿°dONLNdföæ¶)‘ eturned by .°dONLNdqßl≥â(∞lthe WÛ`°dONLNdvßà≥–)indows function Û`°dONLNdÜß–≥0)HMakeProcInstanceÛ`°dONLNdñß0≥5)`. ˇR@ˇ ˇˇˇˇ@
  1695. ˇ·ˇ‚7^
  1696. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1697. , (‡2-574^H¿
  1698. ^Hk4^Hk°dONLNd^äf©(däIMPORTİdONLNd^©fπ)ANT
  1699. ˇ·ˇ‚7^
  1700. °dONLNdiäuê(räY@İdONLNdiêuy)5our application should not issue a call to any QuickTå°dONLNdJixuπ)Ëake 100 driver °dONLNdYuäÅ6(~ä(function (including this function) befor€ °dONLNdÅu6Åu)¨e completion rI@°dONLNdèuvÅΩ)@outine has been °dONLNdüÅäçí(ää<called. Likewise, the application should not call any QuickTó‡°dONLNd€Åëç¥(äëake 100 °dONLNd„çäôµ(ñäEdriver function other than this function during the time an image is °dONLNd(ôä•©* being r_ °dONLNd/ô©•“)
  1701. etrieved. .°dONLNd:™ä∂û(≥äThe ,
  1702. Courier°dONLNd>™û∂.)CmGetThumbnailImageAsync°dONLNdV™.∂≥)ê  function is valid only for the .°dONLNdv∂ä¬î(øäWÛ`°dONLNdw∂쬂)    indows platform. ,Zapf Dingbats@°dONLNdâπË¡Ô)Us°dONLNdã€H‰b(‚HRESULëİdONLNdê€b‰Ü)T CODES
  1703. .°dONLNdòÈäı+( Upon successful completion, the °dONLNd∏Èı™)êCmGetThumbnailImageAsync°dONLNd–È™ı÷)ê  function rR`°dONLNd€È÷ıÛ),eturns °dONLNd‚ˆä®(ˇänoErr¬†°dONLNdÁˆß¨). .°dONLNdÍä≠(ä    If an errÖ°dONLNdÛ≠+)#or is detected, this function r®@°dONLNd+¿)~#eturns one of the values listed her•İdONLNd5¿«)ïe:.°dONLNd8ä!Ã(ä kCmAIPError., °dONLNdD3!J)©-6201°dONLNdJb!î)/
  1704. An asynchr<¿°dONLNdTï!ı)3onous operation is alr5İdONLNdjı! )`eady °dONLNdo b,w()bin prć°dONLNdt w,Ö)ogrJİdONLNdw Ü,ï)ess..°dONLNd|+ä7fi(4äkCmBadArgError., °dONLNdã+37J)©-6204°dONLNdë+b7Ò)/ Parameter is or contains an addr‰ °dONLNd±+Ò7 )èess of °dONLNd∏6bBΩ(?ban invalid data item..°dONLNdŒAäMÍ(JäkCmNoMemoryError., °dONLNdflA3MJ)©-6209°dONLNdÂAbMÙ)/ System failed to allocate memory=`°dONLNdAÙM˘)í. .°dONLNdLäX(UäkCmNotConnectedError., °dONLNdL3XJ)©-6208°dONLNd#LbXi)/A∫†°dONLNd$LiX
  1705. )$ connection with the camera has not °dONLNdHWbcó(`b been made. .°dONLNdTbän‰(käkCmNotOpenError.∏¿°dONLNddb3nE)©-621°dONLNdhbEnJ)1°dONLNdjbbnñ)
  1706. The QuickTº@°dONLNdtbïn)3ake 100 driver has not been °dONLNdêmbyì(vbinitialized. °dONLNdûëHöo(òHSEE ALSO
  1707. .°dONLNdßüä´+BCmAsyncCompletionRoutine°dONLNdøü´()ê on °dONLNd√ü(´@)page °dONLNd»ü@´S)2-33°dONLNdÃüS´X), °dONLNdŒüX´‹)CmCancelAsyncOperation°dONLNd‰ü‹´Í)Ñ on °dONLNd˨ä∏¢(µäpage °dONLNd̨¢∏µ)2-34°dONLNdÒ¨µ∏∫), °dONLNdÛ¨∫∏,)CmGetThumbnailImage°dONLNd¨,∏:)r on °dONLNd
  1708. ¨:∏R)page °dONLNd¨R∏e)2-54°dONLNd¨e∏j), °dONLNd¨j∏Ù)CmGetFullSizeImageAsync°dONLNd,¨Ù∏)ä on °dONLNd0πä≈¢(¬äpage °dONLNd5π¢≈µ)2-60°dONLNd9πµ≈∫), °dONLNd;π∫≈)CmGetDecompTable°dONLNdKπ≈()` on °dONLNdOπ(≈@)page °dONLNdTπ@≈S)2-45°dONLNdXπS≈X), °dONLNdZπX≈Ù)CmGetColorCorrectionMatrix°dONLNdtπÙ≈)ú on °dONLNdxΔä“¢(œäpage °dONLNd}Δ¢“µ)2-46°dONLNdÅΔµ“∫), °dONLNdÉΔ∫“)CmGetErrorInfo°dONLNdëΔ“)T on °dONLNdïΔ“4)page °dONLNdöΔ4“G)2-48°dONLNdûΔG“I) 
  1709. H 4H
  1710.  H
  1711. ˇ·ˇ‚7^ .°dONLNd†ıHæ(ˇHCmGetFullSizeImageˇˇˇˇˇˇ(ˇ2
  1712. .°dONLNd¥ä Œ(ä6pascal OSErr CmGetFullSizeImage(CameraData cameraData,°dONLNdÚ".û+~unsigned short pictureNo,°dONLNd0<å*BufferPtr imageBuffer,°dONLNd1>J‘*"unsigned long numberOfBytesToRead,°dONLNd[LXt*Boolean firstRead,°dONLNduZfí*LongPtr  actualBytes); °dONLNdçrä~Δ({ä
  1713. cameraData°dONLNdòrÃ~))BThe private data strl°dONLNd¨r)~?)]uctur>`°dONLNd±r?~J)e r¿°dONLNd¥rJ~{) eturned by ¿°dONLNdør{~√)1 CmOpenDriver¿°dONLNdÀr√~ˆ)H  when your .°dONLNd÷~ÃäN(áÃapplication opens the QuickT‰`°dONLNdÚ~Mä™)Åake 100 device driver‡°dONLNd~´ä∞)^. .°dONLNd
  1714. éäö¿(óä    pictureNo.°dONLNdéÃöc)B!The number identifying the picturhİdONLNd5écöÓ)ó!e whose full-size image is to be °dONLNdVöö˚(£Ã
  1715. uploaded. ˇ @ˇ ˇˇˇˇ@
  1716. ˇ·ˇ‚7^
  1717. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1718. (‡*2-58    )BQuickT@)ake 100 Device Driver Reference4^*¿¯,
  1719. Courier
  1720. .°dONLNd\lhÆ(el imageBuffer.°dONLNd hÆt≈+B AddrC¿°dONLNdhΔt)ess of the bufc °dONLNdhtg):fer into which data corr2¿°dONLNd6hhtÙ)h esponding to the image is to be °dONLNdVtÆÄæ(}Æstor9‡°dONLNdZtøÄÃ)ed..°dONLNd^Ñlêfi(çlnumberOfBytesToRead°dONLNdrêÆúk+B +The number of bytes of data to be transferrR`°dONLNdùêkúÉ)Ωed to R`°dONLNd£êÉú≈) imageBufferï°dONLNdÆêƒú‡)A. This .°dONLNdµúÆ®~(•Æ0value must be a multiple of 512 unless the entir„İdONLNdÂú~®«)–e image is being °dONLNdˆ®Æ¥‘(±Æ    transferròİdONLNdˇ®‘¥ı)&Fed in a single call or when the last block of data in a multiple-call °dONLNdE¥Æ¿Ê(ΩÆsequence is rÊ °dONLNdR¥Ê¿˙)8ead. .°dONLNdXƒl–¢(Õl    firstRead°dONLNdbƒÆ–∫)B If °dONLNdfƒ∫–“) TRUE°dONLNdjƒ“–!), data is transferrR`°dONLNd}ƒ!–c)Oed beginning fr$¿°dONLNdåƒc–ÿ)Bom the start of the image.°dONLNdß‘l‡Æ(›l actualBytes.°dONLNd≥‡ÆÏ≈+B AddrC¿°dONLNd∑‡Δψ)Dess of a memory location into which this function writes the number .°dONLNd˚ÏÆ¯$(ıÆof bytes actually transferrR`°dONLNdÏ$¯E)ved into R`°dONLNdÏE¯á)! imageBufferï°dONLNd)Ïܯâ)A.
  1721. *¯4*¯    .°dONLNd+l( lNote
  1722. ˇ·ˇ‚7^
  1723. .°dONLNd0lw*WÛ`°dONLNd1v')
  1724. 'indows applications should not use the Û`°dONLNdX'])±    BufferPtrÛ`°dONLNda]ó)6 type for the °dONLNdol)Æ(&l imageBuffer°dONLNdzÆ))B parameter as it is defPİdONLNdë)3)cined on PİdONLNdô3)K)"page PİdONLNdûK)Y)2-9PİdONLNd°Y)¢) when making a °dONLNd∞)l5ù(2l call to the °dONLNdº)ù5    )1CmGetFullSizeImage°dONLNdŒ)    5¢)l% function, if the number of bytes to .°dONLNdÛ5lAo(>lrE°dONLNdÙ5pAµ)ead into the bufÆ`°dONLNd5µA«)Efer rİdONLNd    5»Afl)equir¿°dONLNd5flA<)ed for the image is gr® °dONLNd$5<Aà)]eater than 64,000 °dONLNd6AlMä(Jl(high-r°dONLNd=AãM‹)esolution images r˚`°dONLNdOA€MÚ)Pequir†°dONLNdTAÛMˇ)e 1œ†°dONLNdWA˛Mà) !15,200 bytes). Instead, use type .°dONLNdxMlY~(VlcoerR`°dONLNd|M~Y)cion to change the type of the R`°dONLNdõMYG)á imageBufferR`°dONLNd¶MGYÜ)B parameter to °dONLNd¥Ylefi(blunsigned char huge*°dONLNd«Yfie·)r.,Zapf Dingbats.°dONLNd…\ÊdÏ)u
  1725. .Œ°dONLNd YÏeÓ) .°dONLNdÃ~*ác(Ö* DESCRIPTION
  1726. .°dONLNdÿålòÄ+BThe °dONLNd‹åÄòÏ)CmGetFullSizeImage°dONLNdÓåÏò)l  function rR`°dONLNd˘åò–),*etrieves the full-size image of the pictur$¿°dONLNd#å–òÙ)∏    e in the .°dONLNd,ôl•é(¢lcamera.İdONLNd3ôè•ë)# °dONLNd5´l∑r(¥lY@İdONLNd6´r∑Ö)<our application may allocate enough memory to hold the entirX@°dONLNdr´Ö∑“(¥Öe amount of data .°dONLNdÉ∏lƒÍ(¡lcomprising the image to be rR`°dONLNdü∏̓])~etrieved. In this case, set R`°dONLNdª∏]ƒœ)snumberOfBytesToReadR`°dONLNdŒ∏œƒÓ)r to the ˇˇ},°dONLNd÷≈l—(Œl)actual number of bytes of the image (see ˇ˛wÑi`°dONLNdˇ≈—})±CmGetPictureInfoˇˇ},i`°dONLNd≈}—Æ)` ). The entir6°dONLNd≈Ø—–)2e data r–°dONLNd#≈——¯)"    etrieval .°dONLNd,“lfiu(€lprG °dONLNd.“vfiï)
  1727. ocess fi˝@°dONLNd6“ïfiC)*nishes with a single call to the function..°dONLNda‰lñ(ÌlHowever¬†°dONLNdh‰ï.))#, if host memory is in short supply¶‡°dONLNdã‰-2)ò, ¶‡°dONLNdç‰2§)numberOfBytesToRead¶‡°dONLNd†‰§ı)r may be set to less .°dONLNd¥Òl˝Ò(˙l[than the actual number of bytes comprising the image. In this case, multiple calls to this °dONLNd˛l
  1728. ú* function ar”@°dONLNd˛ú
  1729. Z)0,e necessary to upload all of the image data..°dONLNdGlr(lTï°dONLNdHq‡)o make multiple calls to ï°dONLNda‡L)oCmGetFullSizeImageï°dONLNdsL`)l, set ï°dONLNdy`ñ)    firstReadï°dONLNdÇñ£)6 to ï°dONLNdÜ£ª)TRUEï°dONLNd䪷)     in the fiï°dONLNdî·Ô)&rst °dONLNdòl)b(&l9call to the function on a particular image, and then set °dONLNd—b)ò)ˆ    firstRead°dONLNd⁄ò)•)6 to °dONLNdfi•)√)FALSE°dONLNd„√)Ê)     for the .°dONLNdÏ*l6Ê(3lsubsequent calls to get the r√`°dONLNd    *Ê6à)z$emaining blocks of the image. The arB °dONLNd-*â6ı)£ea pointed to by the last .°dONLNdG7lCú(@l    parameter¬†°dONLNdP7õC†)/, ¬†°dONLNdR7†C‚) actualBytes¬†°dONLNd]7‚C∏)B1, contains the number of bytes actually transferrï°dONLNdé7∏CÎ)÷ ed into the °dONLNdöDlPz(MlbufR`°dONLNdùDzPΔ)fer pointed to by R`°dONLNdØDΔP)L imageBufferï°dONLNd∫DP
  1730. )A..°dONLNdºVlb(_l=For information about decoding the data format of the image r7¿°dONLNd˘VÄb≈(_Äeturned by this .°dONLNd
  1731. clo∑(llfunction, see the °dONLNdc∑o)KCmGetDecompTable°dONLNd,cox)` function described on °dONLNdCcxoê)apage °dONLNdHcêo£)2-45°dONLNdLc£o∫), the °dONLNdRpl|(ylCmGetColorCorrectionMatrix°dONLNdlp|i)ú function described on °dONLNdÉpi|Å)apage °dONLNdàpÅ|î)2-46°dONLNdåpî|´), the °dONLNdí}lâÍ(ÜlIpGetCompressionTable°dONLNdß}ÍâK)~ function described on °dONLNdæ}Kâc)apage °dONLNd√}câv)4-18°dONLNd«}vâç), the °dONLNdÕälñÍ(ìlIpSetCompressionTable°dONLNd‚äÍñK)~ function described on °dONLNd˘äKñc)apage °dONLNd˛äcñv)4-19°dONLNd    ävñ†)
  1732. , and the °dONLNd     ól£(†lIpInitCompressionTable°dONLNd    "ó£Q)Ñ function described on °dONLNd    9óQ£i)apage °dONLNd    >ói£w)4-9°dONLNd    Aów£z).ˇH@ˇ ˇˇˇˇ@
  1733. ˇ·ˇ‚7^
  1734. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1735. , (‡2-594^H¿°dONLNd\äh±(eä It is the rh†°dONLNd \±hë)'5esponsibility of your application to allocate the buf˚@°dONLNd@\ëh›)‡fer pointed to by ,
  1736. Courier.°dONLNdRiäuÃ(rä imageBuffer¬†°dONLNd]iÀuŒ)A.
  1737. ÉHë4ÑHë    .°dONLNd_Çäçù(ääNote
  1738. ˇ·ˇ‚7^
  1739. °dONLNddèäõ«*IIf your application uploads the image in chunks of blocks, it should not °dONLNd≠õäߡ* attempt to call any QuickT@¿°dONLNd«õˇß™)u(ake 100 driver function (including this °dONLNdÔßä≥”(∞äfunction on a difİdONLNdß”≥fl)Iferb°dONLNdßfl≥    )
  1740. ent pictur(†°dONLNdß
  1741. ≥ô)+"e) in between successive calls to ˇˇ√d.°dONLNd/≥äøˆ(ºäCmGetFullSizeImageˇˇÎðdONLNdA≥ˆø˙)l. l°dONLNdC≥˚øŒ)/Any attempt at calling another function causes .°dONLNdrøäÀ¨(»äthe curr `°dONLNdzø≠À¡)#ent r.¿°dONLNdø¡À:)etrieval operation to end prI@°dONLNdõø:ÀY)yematurı`°dONLNd°øYÀ£)ely and makes it .°dONLNd≤Àä◊Δ(‘änecessary to rR`°dONLNd¿ÀΔ◊ˇ)<estart the pr$¿°dONLNdÕÀˇ◊)9ocess fr˜ °dONLNd’À◊p)om the beginning (˜ °dONLNdÁÀp◊∏)R firstRead = °dONLNdÛ◊ä„¢(‡äTRUE°dONLNd˜◊¢„´)). .°dONLNd˚ËäÙÕ(ÒäHThe application is expected to know exactly how many times it must call .°dONLNdCÙäˆ* CmGetFullSizeImage°dONLNdUÙˆH)l and with how larR`°dONLNdfÙHj)Rge a buf$¿°dONLNdnÙjw)"ferg`°dONLNdqÙv{) .     °dONLNdsÙ{Ω)Attempting to .°dONLNdÅä ç(    ärE°dONLNdÇé n)3ead image data beyond the actual size of the data r°dONLNdµn Ø)‡esults in an err‡°dONLNd≈Ø ∏)Aor≈†°dONLNd«∑ º). .°dONLNd äû(äThe °dONLNdŒû
  1742. )CmGetFullSizeImage°dONLNd‡
  1743. \)l function does not rR`°dONLNdÙ\ )Return to the application .°dONLNdä)ø(&äuntil it has rÈ¿°dONLNdø))5etrieved the specifiqİdONLNd/)ó)Ted number of bytes or it has fiû`°dONLNdNó)π)Ñnished. ,Zapf DingbatsK‡°dONLNdW ø(≈)(u
  1744. °dONLNdY.ä:K(7ä,If you want your application to pursue a difJ°dONLNdÖ.L:X)¬fer,İdONLNdà.X:u) ent thrb†°dONLNdè.u:Ò)ead of execution during the ˇˇè4.°dONLNd´;äGé(DärR`°dONLNd¨;éGø) etrieval pr≥Ù°dONLNd∑;øGÌ)1 ocess, call ˇ˛≠ú“\°dONLNd√;ÌGw).CmGetFullSizeImageAsyncˇˇè4“\°dONLNd⁄;wG¶)ä  instead of ˇ˛≠ú¯°dONLNdÊ;ßG)0CmGetFullSizeImageˇˇè4¯°dONLNd¯;G)l..°dONLNd˙aHjb(hHRESULëİdONLNdˇabjÜ)T CODES
  1745. .°dONLNdoä{+( Upon successful completion, the °dONLNd'o{Ü)êCmGetFullSizeImage°dONLNd9oÜ{≤)l  function rR`°dONLNdDo≤{œ),eturns R`°dONLNdKoœ{Ì)noErrR`°dONLNdPoÌ{) and °dONLNdU|äà¶(Öäthe arR`°dONLNd[|¶à)ea pointed to by R`°dONLNdl|à2)J imageBufferR`°dONLNdw|2àE)B is fiR`°dONLNd}|Eà¥)lled with the image corr$¿°dONLNdï|¥à)oesponding to the °dONLNd¶âäï•(íäpicturR`°dONLNd¨â•ïœ)    e identifiR`°dONLNd∂âœïJ)*ed by the second parameterï°dONLNd–âIïN)z, ï°dONLNd“âNïÑ)    pictureNoï°dONLNd€âÑïâ)6. °dONLNdfiõä߯(§ä    If an errR`°dONLNdÁõÆßÔ)$or is detected, R`°dONLNd˜õÔß[)ACmGetFullSizeImageR`°dONLNd    õ[ßa)l r$¿°dONLNd õaߢ)#eturns one of the values listed her˜ °dONLNd.õ¯ß)óe. °dONLNd1®ä¥Ô(±äNote that when an errR`°dONLNdF®Ô¥t)e or occurs, the content of the ar$¿°dONLNdf®t¥–)Öea pointed to by the $¿°dONLNd{®–¥)\ imageBuffer$¿°dONLNdÜ®¥)B .°dONLNdáµä¡‡(æäparameter is undefi°dONLNdöµ·¡Ù)Wned..°dONLNdü¬äŒÃ(Àä kCmAIPError., °dONLNd´¬3ŒJ)©-6201°dONLNd±¬bŒî)/
  1746. An asynchr<¿°dONLNdª¬ïŒı)3onous operation is alr5İdONLNd—¬ıŒ )`eady °dONLNd÷ÕbŸw(÷bin prć°dONLNd€ÕwŸÖ)ogrJİdONLNdfiÕÜŸò)ess. .°dONLNd‰ÿä‰fi(·äkCmBadArgError., °dONLNdÛÿ3‰J)©-6204°dONLNd˘ÿb‰Ò)/ Parameter is or contains an addr‰ °dONLNdÿÒ‰ )èess of °dONLNd „bÔø(Ïban invalid data item. .°dONLNd7Óä˙fi(˜äkCmCameraError., °dONLNdFÓ3˙J)©-6200°dONLNdLÓb˙p)/ErrS`°dONLNdOÓp˙˚) or detected by the camera. Call .°dONLNdo˘b∂(bCmGetErrorInfo°dONLNd}˘∂ª)T. °dONLNdÄä(äkCmCameraNotFoundError., °dONLNdó3J)©-6206°dONLNdùb)/&Device connected to the port is not a °dONLNd√bÇ* QuickTÄİdONLNd…Ç˚) ake 100 camera. Macintosh °dONLNd„b&û(#bplatform only_İdONLNdû&£)<. .°dONLNdÛ%ä1“(.ä kCmCommError., °dONLNd%31J)©-6214°dONLNd%b1i)/A∫†°dONLNd%i1⁄) serial communication err∂`°dONLNd %⁄1)q    or occurr≥@°dONLNd)%1)(ed. °dONLNd-0b<l(9bWÛ`°dONLNd.0k<À)    indows platform only1‡°dONLNdB0À<–)`. .°dONLNdE;äGÍ(DäkCmNoMemoryError., °dONLNdV;3GJ)©-6209°dONLNd\;bGÙ)/ System failed to allocate memory=`°dONLNd|;ÙG˘)í. °dONLNd~FbRl(ObWÛ`°dONLNdFkRÀ)    indows platform only1‡°dONLNdìFÀR–)`. .°dONLNdñQä](ZäkCmNotConnectedError., °dONLNd´Q3]J)©-6208°dONLNd±Qb]i)/A∫†°dONLNd≤Qi]
  1747. )$ connection with the camera has not °dONLNd÷\bhó(eb been made. .°dONLNd‚gäs‰(päkCmNotOpenError.∏¿°dONLNdÚg3sE)©-621°dONLNdˆgEsJ)1°dONLNd¯gbsñ)
  1748. The QuickTº@°dONLNdgïs)3ake 100 driver has not been °dONLNdrb~ì({binitialized. .°dONLNd,}äâÍ(ÜäkCmProtocolError., °dONLNd=}3âJ)©-6212°dONLNdC}bâk)/PrN†°dONLNdE}lâñ)
  1749.  
  1750. otocol errK`°dONLNdO}ñâ
  1751. )*or during communication °dONLNdgàbîô(ëb with QuickTS†°dONLNdràôîÎ)7ake 100 camera. W @°dONLNdÉàÎî)Rindows °dONLNdäìbüû(úbplatform only_İdONLNdóìûü†)<.ˇb@ˇ ˇˇˇˇ@
  1752. ˇ·ˇ‚7^
  1753. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1754. (‡*2-60    )BQuickT@)ake 100 Device Driver Reference4^*¿¯°dONLNd\*eQ(c*SEE ALSO,
  1755. Courier
  1756. .°dONLNd    jlvΔ+BCmGetCameraInfo°dONLNdjΔv‘)Z on °dONLNdj‘vÏ)page °dONLNd!jÏvˇ)2-28°dONLNd%jˇv); °dONLNd'jvd)CmGetPictureInfo°dONLNd7jdvr)` on °dONLNd;jrvä)page °dONLNd@jävù)2-29°dONLNdDjùv¢); °dONLNdFwlÉfi(ÄlCmGetThumbnailImage°dONLNdYwfiÉÏ)r on °dONLNd]wÏÉ)page °dONLNdbwÉ)2-54°dONLNdfwÉ); °dONLNdhwɶ)CmGetFullSizeImageAsync°dONLNdw¶ÉÌ)ä described next; °dONLNdêÑlêÃ(çlCmGetDecompTable°dONLNd†ÑÃê⁄)` on °dONLNd§Ñ⁄êÚ)page °dONLNd©ÑÚê)2-45°dONLNd≠Ñê
  1757. ); °dONLNdØÑ
  1758. ê¶)CmGetColorCorrectionMatrix°dONLNd…Ѷê¥)ú on °dONLNdÕÑ¥êÃ)page °dONLNd“ÑÃêfl)2-46°dONLNd÷Ñflê‰); °dONLNdÿëlù¿(ölCmGetErrorInfo°dONLNdÊë¿ùŒ)T on °dONLNdÍëŒùÊ)page °dONLNdÔëÊù˘)2-48°dONLNdÛë˘ù˚) 
  1759. Õ*÷¯4Œ*’¯ œ*œ˛
  1760. ˇ·ˇ‚7^ .°dONLNdı¿*Œ¬( *CmGetFullSizeImageAsyncˇˇˇˇˇˇ( Ú2
  1761. .°dONLNdfllÎŒ(Ël;pascal OSErr CmGetFullSizeImageAsync(CameraData cameraData,°dONLNdNÌ¥˘J+Hunsigned short pictureNo,°dONLNdl˚¥8*BufferPtr imageBuffer,°dONLNdá    ¥Ä*"unsigned long numberOfBytesToRead,°dONLNdÆ¥# *Boolean firstRead,°dONLNd≈%¥1Ú*5CmAsyncCompletionRoutinePtr asyncCompletionRoutine); °dONLNd˚=lI®(Fl
  1762. cameraData°dONLNd=ÆI )BThe private data strl°dONLNd= I!)]uctur>`°dONLNd=!I,)e r¿°dONLNd"=,I]) eturned by ¿°dONLNd-=]I•)1 CmOpenDriver¿°dONLNd9=•Iÿ)H  when your .°dONLNdDIÆU0(RÆapplication opens the QuickT‰`°dONLNd`I/Uå)Åake 100 device driver‡°dONLNduIçUí)^. .°dONLNdxYle¢(bl    pictureNo.°dONLNdÇYÆeE)B!The number identifying the picturhİdONLNd£YEe–)ó!e whose full-size image is to be °dONLNdƒeÆq›(nÆ
  1763. uploaded. .°dONLNdœulÅÆ(~l imageBuffer.°dONLNd€ÅÆç≈+B AddrC¿°dONLNdflÅΔç)ess of the bufc °dONLNdÌÅçg):fer into which data corr2¿°dONLNdÅhçÙ)h esponding to the image is to be °dONLNd%çÆôæ(ñÆstor9‡°dONLNd)çøôÃ)ed..°dONLNd-ùl©fi(¶lnumberOfBytesToRead°dONLNdA©Æµk+B +The number of bytes of data to be transferrR`°dONLNdl©kµÉ)Ωed to R`°dONLNdr©Éµ≈) imageBufferï°dONLNd}©ƒµ‡)A. This .°dONLNdѵơ~(æÆ0value must be a multiple of 512 unless the entir„İdONLNd¥µ~¡«)–e image is being °dONLNd≈¡ÆÕ‘( Æ    transferròİdONLNdŒ¡‘Õı)&Fed in a single call or when the last block of data in a multiple-call °dONLNdÕÆŸÊ(÷Æsequence is rÊ °dONLNd!ÕÊŸ˙)8ead. .°dONLNd'›lÈ¢(Êl    firstRead°dONLNd1›ÆÈ∏)BIf °dONLNd4›∏È–)
  1764. TRUE°dONLNd8›–È), data is transferrR`°dONLNdK›Èa)Oed beginning fr$¿°dONLNdZ›aÈ÷)Bom the start of the image.°dONLNduÌl˘(ˆlasyncCompletionRoutine.°dONLNdå˘Æ≈+B AddrC¿°dONLNdê˘Δ≥)7ess of a callback function to be called when the specifie`°dONLNd»˘≥Ò)Ìed number of .°dONLNd’Æ(Æbytes has been transferrR`°dONLNdÌQ)ked to the buf$¿°dONLNd˙Qù)8fer pointed to by $¿°dONLNd ùfl)L imageBufferg`°dONLNdfi·)A..°dONLNd+*4c(2* DESCRIPTION
  1765. .°dONLNd%8lDÄ+BThe °dONLNd)8ÄD
  1766. )CmGetFullSizeImageAsync°dONLNd@8
  1767. Dr)ä function is the asynchrR`°dONLNdX8rD∫)honous version of °dONLNdiElQÿ(NlCmGetFullSizeImage°dONLNd{EÿQ)l
  1768.  and is prR`°dONLNdÖEQ=)) ovided for W≈¿°dONLNdëE<Qÿ);"indows applications that pursue a .°dONLNd≥Rl^x([ldif™`°dONLNd∂Rx^Ñ) fer凰dONLNdπRÑ^°) ent thr√°dONLNd¿R°^e),ead of execution during the time the image r“@°dONLNdÏRe^í)ƒ etrieval prX†°dONLNd˜Rì^Ó).ocess is taking place..°dONLNddlp¿(mlThe parameters arR`°dONLNdd¿p`)T$e the same as those supplied to the R`°dONLNdCd`pÃ)†CmGetFullSizeImageR`°dONLNdUdÃpÙ)l
  1769.  function °dONLNd_ql}(zlexcept for the last parameter¬†°dONLNd|qÔ}Ù)É, ¬†°dONLNd~qÙ}x)asyncCompletionRoutine¬†°dONLNdîqx}œ)Ñ, which is the addrï°dONLNdßqœ}Ò)W    ess of a .°dONLNd∞~läñ(ál
  1770. callback rç°dONLNd∫~ñä-)*$outine to be called after the specifiú‡°dONLNdfl~-ä⁄)ó&ed number of bytes have been transferr·¿°dONLNd~⁄äÚ)≠ed to .°dONLNd ãló(îl"the memory location pointed to by °dONLNd-ãóJ)ú imageBuffer¬†°dONLNd8ãIód)A. (See ¬†°dONLNd?ãdóÙ)CmAsyncCompletionRoutine¬†°dONLNdWãÙóˆ)ê .°dONLNdXòl§y(°lon F‡°dONLNd[òz§ë)page !¿°dONLNd`òí§§)2-33u†°dONLNddò§§¨).) ˇÇ@ˇ ˇˇˇˇ@
  1771. ˇ·ˇ‚7^
  1772. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1773. , (‡2-614^H¿°dONLNd\äh•(eäFor Wj†°dONLNd\•h()indows applications, the addr`°dONLNd"\)h~)Ñess of the callback ré¿°dONLNd7\~h)Uoutine handed to this function .°dONLNdViäu‘(rämust be the one rR`°dONLNdgi‘u")Jeturned by the W≈¿°dONLNdwi!ui)Mindows function ,
  1774. Courier≈¿°dONLNdáiiu…)HMakeProcInstance≈¿°dONLNdói…uÃ)`.
  1775. ÉHë4ÑHë.°dONLNdôÑäå©(ääIMPORTİdONLNdüÑ©åπ)ANT
  1776. ˇ·ˇ‚7^
  1777. °dONLNd£èäõê(òäY@İdONLNd§èêõô)<our application should not attempt to call any of the QuickTÊİdONLNd‡èòõª(òòake 100 °dONLNdËõäß∞(§äFdriver functions (including this function) prior to the time that the °dONLNd.ßä≥™* QuickTÄİdONLNd4ß™≥B) $ake 100 driver calls your callback r;‡°dONLNdXßC≥a)ôoutine.°dONLNd`∏䃵(¡äDLikewise, you should not attempt to issue calls to any of the QuickTVİdONLNd§∏µƒΔ(¡µake °dONLNd®ƒä–í(Õä=100 driver functions (except this function) while the image r~İdONLNdƒí–µ(Õí    etrieval °dONLNdÓ–ä‹ì(ŸäprG °dONLNd–î‹Ú)
  1778. ocess is taking place. ,Zapf DingbatsT†°dONLNd”˜€˛)cs
  1779. .°dONLNd
  1780. ·äÌû(ÍäThe °dONLNd·ûÌ()CmGetFullSizeImageAsync°dONLNd%·(Ì∏)ä! function is valid only for the WÛ`°dONLNdF·∑Ì)èindows platform..°dONLNdWHb(HRESULëİdONLNd\bÜ)T CODES
  1781. .°dONLNddä!+( Upon successful completion, the °dONLNdÑ!§)êCmGetFullSizeImageAsync°dONLNdõ§!–)ä  function rR`°dONLNd¶–!Ì),eturns R`°dONLNd≠Ì! )noErrï°dONLNd≤
  1782. !). .°dONLNdµ'ä3≠(0ä    If an errÖ°dONLNdæ'≠3)#or is detected, the value rù†°dONLNdŸ'3Ó)o1eturned by this function is one of the following:.°dONLNd 4ä@Ã(=ä kCmAIPError., °dONLNd43@J)©-6201°dONLNd4b@î)/
  1783. An asynchr<¿°dONLNd'4ï@ı)3onous operation is alr5İdONLNd=4ı@ )`eady °dONLNdB?bKw(Hbin prć°dONLNdG?wKÖ)ogrJİdONLNdJ?ÜKï)ess..°dONLNdOJäVfi(SäkCmBadArgError., °dONLNd^J3VJ)©-6204°dONLNddJbVÒ)/ Parameter is or contains an addr‰ °dONLNdÑJÒV )èess of °dONLNdãUbaΩ(^ban invalid data item..°dONLNd°`älÍ(iäkCmNoMemoryError., °dONLNd≤`3lJ)©-6209°dONLNd∏`blÙ)/ System failed to allocate memory=`°dONLNdÿ`Ùl˘)í. .°dONLNd€käw(täkCmNotConnectedError., °dONLNdk3wJ)©-6208°dONLNdˆkbwi)/A∫†°dONLNd˜kiw
  1784. )$ connection with the camera has not °dONLNdvbÇó(b been made. .°dONLNd'Åäç‰(ääkCmNotOpenError.∏¿°dONLNd7Å3çE)©-621°dONLNd;ÅEçJ)1°dONLNd=Åbçñ)
  1785. The QuickTº@°dONLNdGÅïç)3ake 100 driver has not been °dONLNdcåbòì(ïbinitialized. °dONLNdq∞Hπo(∑HSEE ALSO
  1786. .°dONLNdzæä +BCmAsyncCompletionRoutine°dONLNdíæ ()ê on °dONLNdñæ( @)page °dONLNdõæ@ S)2-33°dONLNdüæS X), °dONLNd°æX ‹)CmCancelAsyncOperation°dONLNd∑æ‹ Í)Ñ on °dONLNdªÀä◊¢(‘äpage °dONLNd¿À¢◊µ)2-34°dONLNdƒÀµ◊∫), °dONLNdΔÀ∫◊&)CmGetFullSizeImage°dONLNdÿÀ&◊4)l on °dONLNd‹À4◊L)page °dONLNd·ÀL◊_)2-57°dONLNdÂÀ_◊d), °dONLNdÁÀd◊Ù)CmGetThumbnailImageAsync°dONLNdˇÀÙ◊)ê on °dONLNdÿ䉢(·äpage °dONLNdÿ¢‰µ)2-56°dONLNd ÿµ‰∫), °dONLNdÿ∫‰)CmGetErrorInfo°dONLNdÿ‰)T on °dONLNd ÿ‰4)page °dONLNd%ÿ4‰G)2-48°dONLNd)ÿG‰I) 
  1787. H4H H
  1788. ˇ·ˇ‚7^ .°dONLNd+Hc(HCmTŰdONLNd.bõ)
  1789. akePictureˇˇˇˇˇˇ(2
  1790. .°dONLNd:&ä2∂(/ä2pascal OSErr CmTakePicture(CameraData cameraData, °dONLNdu4@Ä+êBoolean timerOn);°dONLNdáLäXΔ(Uä
  1791. cameraData°dONLNdíLÃX))BThe private data strl°dONLNd¶L)X?)]uctur>`°dONLNd´L?XJ)e r¿°dONLNdÆLJX{) eturned by ¿°dONLNdπL{X√)1 CmOpenDriver¿°dONLNd≈L√Xˆ)H  when your .°dONLNd–XÃdN(aÃapplication opens the QuickT‰`°dONLNdÏXMd™)Åake 100 device driver‡°dONLNdX´d∞)^. .°dONLNdhät¥(qätimerOn°dONLNd hÃt÷)BIf °dONLNdh÷tÓ)
  1792. TRUE°dONLNdhÓtx), the camera will take a picturR`°dONLNd2hxt)ä$e at the expiration of its internal °dONLNdVtÃÄÂ(}Ãtimer¬†°dONLNd[t‰ÄÛ). If ¬†°dONLNd`tÛÄ)FALSE¬†°dONLNdetÄC) , the picturï°dONLNdqtCĨ)2e is taken immediatelyy@°dONLNdát´Ä∞)h. .°dONLNdäöH£Å(°H DESCRIPTION
  1793. .°dONLNdñßä≥û+BThe °dONLNdößû≥Ï)CmTakePicture°dONLNdßßÏ≥x)N  function causes the camera currR`°dONLNd«ßx≥)å ently connected to take a pictur$¿°dONLNdÁß≥ )åe.ˇΔ@ˇ ˇˇˇˇ@
  1794. ˇ·ˇ‚7^
  1795. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1796. (‡*2-62    )BQuickT@)ake 100 Device Driver Reference4^*¿¯
  1797. .°dONLNd\lhè(elSetting ,
  1798. Courier°dONLNd\èhπ)#timerOn°dONLNd\πhΔ)* to °dONLNd\Δh‰)FALSE°dONLNd\‰hF) causes the next picturR`°dONLNd/\Fhº)be to be taken immediately6†°dONLNdH\ªh¯)u. Setting it to °dONLNdXiluÑ(rlTRUE°dONLNd\iÑu()% causes the camera to take the picturR`°dONLNdÅi(uÿ)§)e at the expiration of its internal timerï°dONLNd™i◊u‹)Ø. 
  1799. É*ë¯4Ñ*ë¯.°dONLNd≠Ñlåã(älIMPORTİdONLNd≥Ñãåõ)ANT
  1800. ˇ·ˇ‚7^
  1801. °dONLNd∑èlõ (òlThe number of picturfi¿°dONLNdÀè õ™)^4es that can be taken by the camera must at least be .°dONLNdˇõlßr(§l1°dONLNdõrßà) in orR`°dONLNdõàß∫) der for the R`°dONLNdõ∫ß)2CmTakePictureR`°dONLNdõß_)N function to succeed.ˇ˛ı*°dONLNd5¨l∏∫(µlCmTakePictureˇˇß°dONLNdB¨∫∏‰)N  does not rGä°dONLNdM¨Â∏∞)+.eturn to the application until the camera has .°dONLNd{∏lƒr(¡lfiå¿°dONLNd}∏rƒ)"nished attempting to take a pictur&@°dONLNdü∏ƒ!)ñe. CarÀ‡°dONLNd•∏!ƒï)e should be taken to ensuræ`°dONLNdø∏ïƒú)te °dONLNd¡ƒl–%(Õl*that the function has completed the pictur¨`°dONLNd΃%–î)πe-taking operation when .°dONLNd–l‹ñ(ŸltimerOn°dONLNd
  1802. Жܽ)*
  1803.  is specifPİdONLNd–Ω‹⁄)'ied as PİdONLNd–⁄‹Ú)TRUEPİdONLNd–Ú‹˜). ,Zapf Dingbats.PİdONLNd"”¸€)
  1804. s°dONLNd$ı*˛D(¸*RESULëİdONLNd)ıD˛h)T CODES
  1805. .°dONLNd1lô+( If a picturR`°dONLNd<ô1)-#e has successfully been taken, the R`°dONLNd_1)òCmTakePictureR`°dONLNdl´)N  function r$¿°dONLNdw´»),eturns $¿°dONLNd~»Ê)noErrg`°dONLNdÉÂÍ). .°dONLNdÜl!è(l    If an errÖ°dONLNdèè!)#or is detected, this function r®@°dONLNdÆ!¶)~#eturns one of the following values:.°dONLNd“"l.Æ(+l kCmAIPError., °dONLNdfi".,)©-6201°dONLNd‰"D.v)/
  1806. An asynchr<¿°dONLNdÓ"w.◊)3onous operation is alr5İdONLNd"◊.Ó)`eady °dONLNd    -D9Y(6Din prć°dONLNd-Y9g)ogrJİdONLNd-h9z)ess. .°dONLNd8lD¿(AlkCmBadArgError., °dONLNd&8D,)©-6204°dONLNd,8DD”)/ Parameter is or contains an addr‰ °dONLNdL8”DÓ)èess of °dONLNdSCDO°(LDan invalid data item. .°dONLNdjNlZ¿(WlkCmCameraError., °dONLNdyNZ,)©-6200°dONLNdNDZR)/ErrS`°dONLNdÇNRZ›) or detected by the camera. Call .°dONLNd¢YDeò(bDCmGetErrorInfo°dONLNd∞Yòeù)T. °dONLNd≥dlp(mlkCmCameraNotFoundError., °dONLNd dp,)©-6206°dONLNd–dDpÁ)/&Device connected to the port is not a °dONLNdˆoD{d* QuickTÄİdONLNd¸od{›) ake 100 camera. Macintosh °dONLNdzDÜÄ(ÉDplatform only_İdONLNd#zÄÜÖ)<. .°dONLNd&Ölë¥(él kCmCommError., °dONLNd3Öë,)©-6214°dONLNd9ÖDëK)/A∫†°dONLNd:ÖKëº) serial communication err∂`°dONLNdSÖºë‰)q    or occurr≥@°dONLNd\Ö‰ëÛ)(ed. °dONLNd`êDúN(ôDWÛ`°dONLNdaêMú≠)    indows platform only1‡°dONLNduê≠ú≤)`. .°dONLNdxõlßÃ(§lkCmNoMemoryError., °dONLNdâõß,)©-6209°dONLNdèõDß÷)/ System failed to allocate memory=`°dONLNdØõ÷߀)í. °dONLNd±¶D≤N(ØDWÛ`°dONLNd≤¶M≤≠)    indows platform only1‡°dONLNdΔ¶≠≤≤)`. .°dONLNd…±lΩ‰(∫lkCmNotConnectedError., °dONLNdfi±Ω,)©-6208°dONLNd‰±DΩK)/A∫†°dONLNd±KΩÏ)$ connection with the camera has not °dONLNd    ºD»y(≈D been made. .°dONLNd«l”Δ(–lkCmNotOpenError.∏¿°dONLNd%«”')©-621°dONLNd)«'”,)1°dONLNd+«D”x)
  1807. The QuickTº@°dONLNd5«w”Ú)3ake 100 driver has not been °dONLNdQ“Dfiu(€Dinitialized. .°dONLNd_›lÈÃ(ÊlkCmProtocolError., °dONLNdp›È,)©-6212°dONLNdv›DÈM)/PrN†°dONLNdx›NÈx)
  1808.  
  1809. otocol errK`°dONLNdÇ›xÈÏ)*or during communication °dONLNdöËDÙ{(ÒD with QuickTS†°dONLNd•Ë{ÙÕ)7ake 100 camera. W @°dONLNd∂ËÕÙ)Rindows °dONLNdΩÛDˇÄ(¸Dplatform only_İdONLNd ÛġÇ)<.°dONLNdÃ* Q(*SEE ALSO
  1810. .°dONLNd’%l1Δ+BCmGetCameraInfo°dONLNd‰%Δ1‘)Z on °dONLNdË%‘1Ï)page °dONLNdÌ%Ï1ˇ)2-28°dONLNdÒ%ˇ1); °dONLNdÛ%1p)CmTakePictureAsync°dONLNd%p1∫)l, described next; °dONLNd%∫1‰)JCmErase°dONLNd%‰1Ú)* on °dONLNd"2l>Ñ(;lpage °dONLNd'2Ñ>ó)2-31°dONLNd+2ó>ú); °dONLNd-2ú>)CmGetErrorInfo°dONLNd;2>˛)T on °dONLNd?2˛>)page °dONLNdD2>))2-48
  1811. n*w¯4o*v¯ p*p˛
  1812. ˇ·ˇ‚7^ .°dONLNdIa*oE(k*CmTŰdONLNdLaDoü)akePictureAsyncˇˇˇˇˇˇ(kÚ2
  1813. .°dONLNd]Älå∂(âl7pascal OSErr CmTakePictureAsync(CameraData cameraData, °dONLNdôé¥ö+HBoolean timerOn, °dONLNdØú¥®Ú*5CmAsyncCompletionRoutinePtr asyncCompletionRoutine); ˇΔ@ˇ ˇˇˇˇ@
  1814. ˇ·ˇ‚7^
  1815. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡äQuickT@)ake 100 Device Driver Reference
  1816. , (‡2-634^H¿,
  1817. Courier.°dONLNd\ähΔ(eä
  1818. cameraData°dONLNd \Ãh))BThe private data strl°dONLNd\)h?)]uctur>`°dONLNd$\?hJ)e r¿°dONLNd'\Jh{) eturned by ¿°dONLNd2\{h√)1 CmOpenDriver¿°dONLNd>\√hˆ)H  when your .°dONLNdIhÃtN(qÃapplication opens the QuickT‰`°dONLNdehMt™)Åake 100 device driver‡°dONLNdzh´t∞)^. .°dONLNd}xäÑ¥(ÅätimerOn°dONLNdÖxÃÑ÷)BIf °dONLNdàx÷ÑÓ)
  1819. TRUE°dONLNdåxÓÑx), the camera will take a picturR`°dONLNd´xxÑ)ä$e at the expiration of its internal °dONLNdœÑÃêÂ(çÃtimer¬†°dONLNd‘щêÛ). If ¬†°dONLNdŸÑÛê)FALSE¬†°dONLNdfiÑêC) , the picturï°dONLNdÍÑCê¨)2e is taken immediatelyy@°dONLNdÑ´ê∞)h. °dONLNdîä†(ùäasyncCompletionRoutine.°dONLNd†Ã¨„+B AddrC¿°dONLNd†‰¨0)ess of a callback r›¿°dONLNd1†0¨º)L"outine to be called after a pictur `°dONLNdS†Ω¨)çe has been taken.°dONLNde≈HŒÅ(ÃH DESCRIPTION
  1820. .°dONLNdq”äflû+BThe °dONLNdu”ûfl
  1821. )CmTakePictureAsync°dONLNdá”
  1822. flr)l function is the asynchrR`°dONLNdü”rfl∫)honous version of R`°dONLNd∞”∫fl)HCmTakePictureR`°dONLNdΩ”fl
  1823. )N .°dONLNdæ‡äϱ(Èä    and is prY†°dONLNd«‡±Ïc)')ovided for applications that pursue a difò‡°dONLNd‡cÏo)≤fer{`°dONLNdÛ‡oÏå) ent thr±Ä°dONLNd˙‡åÏ)ead of execution during the °dONLNdÌ䢬(ˆätime a pictur±†°dONLNd#̬˘[)8#e is being taken by the camera currJ‡°dONLNdFÌ\˘¶)öently connected. °dONLNdXˇä •(äFor Wj†°dONLNd]ˇ• ()indows applications, the addr`°dONLNdzˇ) ~)Ñess of the callback ré¿°dONLNdèˇ~ )Uoutine handed to this function .°dONLNdÆ ä‘(ämust be the one rR`°dONLNdø ‘")Jeturned by the W≈¿°dONLNdœ !i)Mindows function ≈¿°dONLNdfl i…)HMakeProcInstance≈¿°dONLNdÔ …Ã)`.
  1824. &H44'H4.°dONLNdÒ'ä/©(-äIMPORTİdONLNd˜'©/π)ANT
  1825. ˇ·ˇ‚7^
  1826. °dONLNd˚2ä>ê(;äY@İdONLNd¸2ê>ô)<our application should not attempt to call any of the QuickTÊİdONLNd82ò>ª(;òake 100 °dONLNd@>äJQ(Gä.driver functions including this function beforI†°dONLNdn>RJ{)»
  1827. e the corré°dONLNdx>{J¨))
  1828. esponding °dONLNdÇJäV¥(Sä
  1829. callback rç°dONLNdåJ¥V%)*outine has been invoked. °dONLNd¶[ägö(däCar\°dONLNd©[ög)e should be taken to ensurNİdONLNd√[g∞)t&e that the function has completed its .°dONLNdÈgäs•(päpicturR`°dONLNdÔg•s)e taking operation when R`°dONLNdgs?)ptimerOnR`°dONLNdg?si)*
  1830.  is specifiR`°dONLNdgisÇ)*ed as R`°dONLNdgÇsö)TRUER`°dONLNd#gösù)..°dONLNd%xäÑî(ÅäWÛ`°dONLNd&xìÑî)    ;indows applications cannot cancel this function by calling .°dONLNdaÖäë(éäCmCancelAsyncOperation°dONLNdwÖë)Ñ.,Zapf Dingbats.°dONLNdyàê)s
  1831. .£°dONLNdzÖë) .°dONLNd|´H¥b(≤HRESULëİdONLNdÅ´b¥Ü)T CODES
  1832. .°dONLNdâπä≈û+(The °dONLNdçπû≈
  1833. )CmTakePictureAsync°dONLNdüπ
  1834. ≈6)l  function rR`°dONLNd™π6≈S),eturns R`°dONLNd±πS≈q)noErrR`°dONLNd∂πq≈ì)     if the r$¿°dONLNdøπì≈Î)"equest is successful. .°dONLNd÷Àä◊≠(‘ä    If an errÖ°dONLNdflÀ≠◊+)#or is detected, this function r®@°dONLNd˛À+◊±)~eturns one of the following err$`°dONLNdÀ≤◊›)á
  1835. or values:.°dONLNd(ÿä‰Ã(·ä kCmAIPError., °dONLNd4ÿ3‰J)©-6201°dONLNd:ÿb‰î)/
  1836. An asynchr<¿°dONLNdDÿï‰ı)3onous operation is alr5İdONLNdZÿı‰ )`eady °dONLNd_„bÔw(Ïbin prć°dONLNdd„wÔÖ)ogrJİdONLNdg„ÜÔò)ess. .°dONLNdmÓä˙fi(˜äkCmBadArgError., °dONLNd|Ó3˙J)©-6204°dONLNdÇÓb˙Ò)/ Parameter is or contains an addr‰ °dONLNd¢ÓÒ˙ )èess of °dONLNd©˘bø(ban invalid data item. .°dONLNd¿äÿ(äkCmCantCancel.°dONLNdœbw)ÿCurrU¿°dONLNd”wÍ)ently outstanding asynchr√ °dONLNdÏÍ)sonous °dONLNdÚbÒ(boperation cannot be canceled. W~@°dONLNdÒ)èindows °dONLNdb&û(#bplatform only_İdONLNd%û&†)<..°dONLNd'%ä1Í(.äkCmNoMemoryError., °dONLNd8%31J)©-6209°dONLNd>%b1Ù)/ System failed to allocate memory=`°dONLNd^%Ù1˘)í. °dONLNd`0b<l(9bWÛ`°dONLNda0k<À)    indows platform only1‡°dONLNdu0À<–)`. .°dONLNdx;äG(DäkCmNotConnectedError., °dONLNdç;3GJ)©-6208°dONLNdì;bGi)/A∫†°dONLNdî;iG
  1837. )$ connection with the camera has not °dONLNd∏FbRó(Ob been made. .°dONLNdƒQä]‰(ZäkCmNotOpenError.∏¿°dONLNd‘Q3]E)©-621°dONLNdÿQE]J)1°dONLNd⁄Qb]ñ)
  1838. The QuickTº@°dONLNd‰Qï])3ake 100 driver has not been °dONLNd\bhì(ebinitialized. °dONLNdÄHâo(áHSEE ALSO
  1839. .°dONLNdéäö+BCmAsyncCompletionRoutine°dONLNd/éö()ê on °dONLNd3é(ö@)page °dONLNd8é@öS)2-33°dONLNd<éSöX), °dONLNd>éXö‹)CmCancelAsyncOperation°dONLNdTé‹öÍ)Ñ on °dONLNdXõäߢ(§äpage °dONLNd]õ¢ßµ)2-34°dONLNdaõµß∫), °dONLNdcõ∫ß)CmTakePicture°dONLNdpõß)N on °dONLNdtõß.)page °dONLNdyõ.ßA)2-61°dONLNd}õAßF), °dONLNdõFßé) CmEraseAsync°dONLNdãõéßú)H on °dONLNdèõúߥ)page °dONLNdîõ¥ß«)2-32°dONLNdòõ«ßÃ), °dONLNdö®ä¥fi(±äCmGetErrorInfo°dONLNd®®fi¥Ï)T on °dONLNd¨®Ï¥)page °dONLNd±®¥)2-48°dONLNdµ®¥) ˇ    ÿ@ˇ ˇˇˇˇ@
  1840. ˇ·ˇ‚7^
  1841. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1842. (‡*2-64    )B C-Language Summary of the QuickT`)íake 100 Device Driver4^*¿¯
  1843. ^*x¯4^*x¯
  1844. à*ê¯4â*ꯠä*ä˛
  1845. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNdu*à4(É* C-Language Summary of the QuickT∫°dONLNd u3à—(É3ake 100 Device DriverˇˇˇˇˇˇV˛)Ω2
  1846. ≤*∏¯4≥*∑¯ ¥*¥¯
  1847. ˇ·ˇ‚7^ °dONLNd7ß*≤[(Ø*    Constantsˇˇˇˇˇˇa‡(ØÚ2,
  1848. Courier
  1849. .°dONLNdB¬*Œú(À*/* CmSetPictureMode°dONLNdU¬úŒ)r picture modes */°dONLNdg–*‹x(Ÿ*kCmColor 0x10°dONLNdufi*Í~*kCmColorQ 0x20°dONLNdј*Í* /* CmSetFlashMode flash modes */°dONLNd•*Ñ*kCmFlashOn 0x02°dONLNdµ*ä*kCmFlashOff 0x01°dONLNdΔ!*-ê*kCmFlashAuto 0x00°dONLNdÿ:*F8*-/* CmSetOwnerName owner name string length */°dONLNdH*Tä*kCmMAXIDWIDTH 32°dONLNda*mfi*/* decompression table size */°dONLNd6o*{®*kCmDecompTableSize 98°dONLNdLà*îê*/* sleep modes */°dONLNd^ñ*¢x*kCmSleepNow 0°dONLNdl§*∞r* kCmSleep5M 1°dONLNdy≤*æx*kCmSleep15M 2°dONLNdá¿*Ãx*kCmSleep30M 3°dONLNdïŒ*⁄x*kCmSleep60M 4°dONLNd£‹*ËÑ*kCmSleepNever 5°dONLNd≥ı*‰*/* battery status indicators */°dONLNd”*~*kPowerAdapter °dONLNd‚®¿)~140 °dONLNdÁÃå)$ /* Power adapter is connected */°dONLNd*ñ(*kBatteryRangeFull °dONLNd®∫)~95 °dONLNdÃÄ)$/* Battery is fully charged */°dONLNd>*+ê((*kBatteryIconFull °dONLNdP®+∫)~86 °dONLNdTÃ+∞)$&/* Values >= 86 indicates the battery °dONLNd}-Ã9h* icon shows full charge */°dONLNdò;*Gê(D*kBatteryIconHalf °dONLNd™;®G∫)~80 °dONLNdÆ;ÃG¯)$2/* Values 80 through 85 indicate that the battery °dONLNd„IÃUh* icon shows half charge */°dONLNd˛W*cú(`*kBatteryRangeEmpty °dONLNdW®c∫)~75 °dONLNdWÃc‡)$./* Battery has an insufficient charge, battery°dONLNdGeÃq>* icon shows empty*/ˇ
  1850. ¬@ˇ ˇˇˇˇ@
  1851. ˇ·ˇ‚7^
  1852. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡ä C-Language Summary of the QuickT`)íake 100 Device Driver
  1853. , )Ë2-654^H¿
  1854. hHn4iHm jHj
  1855. ˇ·ˇ‚7^ °dONLNd]Hhb(eHData òp°dONLNd]bhh)Tµ‡°dONLNd]hh)ypesˇˇˇˇˇˇa‡(e2°dONLNd ~HäÜ(áH
  1856. CameraData
  1857. .°dONLNdêHú»*For the Macintosh platform ,
  1858. Courier°dONLNd2ê»ú)Ä
  1859. CameraData°dONLNd<êú")< is defi°dONLNdDê"ú@)ned as °dONLNdL®H¥(±H"typedef CmCameraData* CameraData; °dONLNdo¿HÃv*    For the WÛ`°dONLNdx¿uì)-indows platform Û`°dONLNdà¿¬Ã˛)M
  1860. CameraDataÛ`°dONLNdí¿˛Ã)< is defiÛ`°dONLNdö¿Ã8)ned as°dONLNd°ÿH‰(·H#typedef unsigned short CameraData;  .°dONLNd≈˜HZ*Buf§°dONLNd»˜Zv)ferPtr
  1861. .°dONLNdœH»(HFor the Macintosh platform °dONLNdÍ»˛)Ä    BufferPtr°dONLNdÛ˛)6 is defi°dONLNd˚:)ned as °dONLNd H,()H!typedef unsigned char* BufferPtr;°dONLNd%8HDv*    For the WÛ`°dONLNd.8uD¬)-indows platform Û`°dONLNd>8¬D¯)M    BufferPtrÛ`°dONLNdG8¯D)6 is defiÛ`°dONLNdO8D2)ned as°dONLNdVPH\&(YH%typedef unsigned char far* BufferPtr; .°dONLNd|oH{î*CmStdFeatures
  1862. .°dONLNdäáHì®*typedef struct {°dONLNdúïZ°Æ+short version;°dONLNd´£HØ(¨H#} CmStdFeatures, *CmStdFeaturesPtr; .°dONLNdœ¬HŒÉ*
  1863. CmPortInfo
  1864. .°dONLNd⁄ŸH®*typedef struct {°dONLNdÏÁZÛ~+Handle°dONLNd˜Á¥ÛÍ)Z    portIcon;°dONLNdıZÆ(˛ZStringHandle  °dONLNdı¥Í)Z    portName;°dONLNd ZÆ( Zunsigned long °dONLNd3¥ˆ)Z portStatus;°dONLNd@Z‰(ZStringHandle   appName;°dONLNdYZ+Í*unsigned char  familyID;°dONLNds-Z9Í*unsigned char  deviceID;°dONLNdç;ZG¸*unsigned short beaconParam;°dONLNd™IZUÑ*Handle °dONLNd∂I¥Uˆ)Z portConfig;°dONLNd√WZc®(`Zunsigned long°dONLNd’W¥c)Z
  1865. DataSpeed;°dONLNd‡eHqt(nH2} CmPortInfo, *CmPortInfoPtr, **CmPortInforHandle;ˇ †@ˇ ˇˇˇˇ@
  1866. ˇ·ˇ‚7^
  1867. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1868. (‡*2-66    )B C-Language Summary of the QuickT`)íake 100 Device Driver4^*¿¯ °dONLNd\*hx(e*CmProductInfo,
  1869. Courier
  1870. .°dONLNdt*Ää*typedef struct {°dONLNd Ç<éT+char°dONLNd%ÇTéZ) °dONLNd*ÇñéÍ)BvendorName[8];°dONLNd:ê<úT(ô<char°dONLNdCêñú2)ZproductIdentification[16];°dONLNd_û<™ä(ß<unsigned char°dONLNdqûñ™)ZhardwareVersion[2];  °dONLNdá¨*∏0(µ* °dONLNdâ¨<∏ä)unsigned char°dONLNdõ¨ñ∏)ZfirmwareVersion[2];°dONLNdØ∫*Δ¸(√*#} CmProductInfo, *CmProductInfoPtr; .°dONLNd”Ÿ*Âp*
  1871. CmDateAndT«0°dONLNd›ŸpÂÇ)Fime
  1872. .°dONLNd·*¸ä(˘*typedef struct {°dONLNdÛ˛<
  1873. ä+unsigned char°dONLNd˛ñ
  1874. ∫)Zmonth;°dONLNd <ä(<unsigned char°dONLNd ñÆ)Zday;°dONLNd%<&ä(#<unsigned char°dONLNd7ñ&¥)Zyear;°dONLNd>(<4ä(1<unsigned char°dONLNdP(ñ4¥)Zhour;°dONLNdW6<Bä(?<unsigned char°dONLNdi6ñB¿)Zminute;°dONLNdrD<Pä(M<unsigned char°dONLNdÑDñP¿)Zsecond;°dONLNdåR*^¸([*#} CmDateAndTime, *CmDateAndTimePtr; .°dONLNd∞q*}h* CmInterface
  1875. .°dONLNdºâ*ïä*typedef struct {°dONLNdŒó<£ä+unsigned char°dONLNd·ó®£ˆ)ltransferRate;°dONLNd•<±ä(Æ<unsigned char°dONLNd•®±¸)lconfiguration;°dONLNd≥<øä(º<unsigned char°dONLNd&≥®øÿ)ltimeOut;°dONLNd/¡*Õ~( *} CmInterface; .°dONLNd>‡*Ïw* CmCameraInfo
  1876. .°dONLNdK˜*ä*typedef struct {°dONLNd]<ä+unsigned char°dONLNdp®¸)lbatteryStatus;°dONLNdÄ<ê(<unsigned short°dONLNdî®)lnoPicturesTaken;°dONLNd¶!<-ê(*<unsigned short°dONLNd∫!®-8)lnoPictureImageAvailable;°dONLNd‘/<;ê(8<unsigned short°dONLNdË/®;)lfullImageWidth;°dONLNd˘=<Iê(F<unsigned short°dONLNd=®I)lfullImageHeight;°dONLNdK<Wê(T<unsigned short°dONLNd3K®W )lthumbnailImageWidth;°dONLNdIY<eê(b<unsigned short°dONLNd]Y®e&)lthumbnailImageHeight;°dONLNdtg<sä(p<CmDateAndTime°dONLNdág®s)lcameraDateAndTime;°dONLNdõu<Åä(~<unsigned char°dONLNdÆu®ʼn)l
  1877. flashMode;°dONLNd∫É<èê(å<unsigned short°dONLNdŒÉ®èˆ)lexposureTime;°dONLNd›ë<ùê(ö<unsigned short°dONLNdÒë®ùÿ)lFNumber;°dONLNd˚ü<´ä(®<unsigned char°dONLNdü®´)l pictureMode;°dONLNd≠<πä(∂<unsigned char°dONLNd/≠®πfi)l    reserved;ˇ Ú@ˇ ˇˇˇˇ@
  1878. ˇ·ˇ‚7^
  1879. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡ä C-Language Summary of the QuickT`)íake 100 Device Driver
  1880. , )Ë2-674^H¿,
  1881. Courier.°dONLNd\Zh®(eZunsigned char°dONLNd\ΔhD)lfullImageDatCompMode;°dONLNd*jZv®(sZunsigned char°dONLNd=jΔvJ)lthumbImageDatCompMode;°dONLNdUxZÑ®(ÅZunsigned long°dONLNdhxΔÑ&)ltotalMemorySize;°dONLNdzÜZí®(èZunsigned long°dONLNdçÜΔí )lfreeMemorySize;°dONLNdûîZ†r(ùZchar°dONLNd®îΔ†)lownerName[32];°dONLNd∏¢ZÆ®(´Zunsigned char°dONLNdÀ¢ΔÆ)lCCDSensorType;°dONLNd€∞Zºú(πZ CmInterface°dONLNdÏ∞Δº )lhostInterface; °dONLNd˝æZ ®(«Zunsigned char°dONLNdæΔ b)lcameraInformationBytes[6];°dONLNd,ÃZÿ®(’Zunsigned char°dONLNd?ÃΔÿb)lcompDecompParamVersion[4];°dONLNd[⁄ZÊ®(„Zunsigned char°dONLNdn⁄ΔÊJ)lcolorMatrixVersion[4];°dONLNdÜËZÙ®(ÒZunsigned char°dONLNdôËΔÙJ)lspareImageMemoryBlock;°dONLNd±ˆZÆ(ˇZunsigned short°dONLNd≈ˆΔ>)lnoBasePicturesTaken;°dONLNd€ZÆ(Zunsigned short°dONLNdÔΔP)lnoQuarterPicturesTaken;°dONLNdZ®(Zunsigned char°dONLNdΔ)l sleepDelay;°dONLNd' H,J()H+} CmCameraInfo, FarPointer CmCameraInfoPtr; .°dONLNdS?HKí*CmPictureInfo
  1882. .°dONLNdaVHbÆ*typedef struct  {°dONLNdtdZpÆ+unsigned short°dONLNdàdΔp)l
  1883. pictureNo;°dONLNdîrZ~®({Zunsigned long°dONLNdßrΔ~)limageDataSize;°dONLNd∑ÄZåÆ(âZunsigned short°dONLNdÀÄΔåÍ)lwidth;°dONLNd”éZöÆ(óZunsigned short°dONLNdÁéΔö)lheight;°dONLNdúZ®®(•ZCmDateAndTime°dONLNdúΔ®)l dateAndTime;°dONLNd™Z∂®(≥Zunsigned char°dONLNd$™Δ∂)l
  1884. flashMode;°dONLNd0∏ZƒÆ(¡Zunsigned short°dONLNdD∏Δƒ)lexposureTime;°dONLNdSΔZ“Æ(œZunsigned short°dONLNdgΔΔ“ˆ)lFNumber;°dONLNdq‘Z‡®(›Zunsigned char°dONLNdÑ‘Δ‡)l pictureMode;°dONLNdí‚ZÓ®(ÎZunsigned char°dONLNd•‚ΔÓ>)ldataCompressionMode;°dONLNdªZ¸®(˘Zunsigned char°dONLNdŒΔ¸)ldefectiveFlag;°dONLNd›˛H
  1885. (H#} CmPictureInfo, *CmPictureInfoPtr; .°dONLNdH)ó*CmColorMatrix
  1886. .°dONLNd5HA®*typedef struct {°dONLNd!CZO2+$unsigned char colorMatrixVersion[4];°dONLNdGQZ] *!double colorCorrectionMatrix[12];°dONLNdi_Hk (hH$} CmColorMatrix,  *CmColorMatrixPtr;ˇ    \@ˇ ˇˇˇˇ@
  1887. ˇ·ˇ‚7^
  1888. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1889. (‡*2-68    )B C-Language Summary of the QuickT`)íake 100 Device Driver4^*¿¯
  1890. h*n¯4i*m¯ j*j¯
  1891. ˇ·ˇ‚7^ °dONLNd]*h\(e*
  1892. Functions ˇˇˇˇˇˇa‡(eÚ2°dONLNd ~*ä“(á*Opening and Closing the QuickTK@°dONLNd*~—ä?)ßake 100 Device Driver,
  1893. Courier
  1894. .°dONLNd@ñ*¢¿(ü*pascal OSErr CmOpenDriver°dONLNda§®∞J+~(CameraDataPtr cameraData);°dONLNd}Ω*…Δ(Δ*pascal OSErr CmCloseDriver°dONLNdüÀ®◊8+~(CameraData cameraData); .°dONLNd∏Í*ˆq(Û* Connecting W„–°dONLNdƒÍqˆ∫)Gith the Camera
  1895. .°dONLNd”*Δ(
  1896. *pascal OSErr CmGetPortInfo°dONLNdı®2+~(CameraData cameraData,°dONLNd®)&* unsigned long index,°dONLNd1+®7Ü*% CmPortInfoHandlePtr portInfoHandle);°dONLNdWD*Pfi(M*pascal OSErr CmDisposePortInfo°dONLNd}R®^8+~(CameraData cameraData, °dONLNdù`®lt*" CmPortInfoHandle portInfoHandle);°dONLNd¿y*ÖÆ(Ç*pascal OSErr CmConnect°dONLNdfiá®ì8+~(CameraData cameraData, °dONLNd˛ï®°t*" CmPortInfoHandle portInfoHandle);°dONLNd!Æ*∫¿(∑*pascal OSErr CmDisconnect°dONLNdBº®»8+~(CameraData cameraData); .°dONLNd[€*Á†(‰*Controlling the Camera
  1897. .°dONLNdrÛ*ˇ“*pascal OSErr CmGetCameraInfo°dONLNdñ®8+~(CameraData cameraData, °dONLNd∂®V* CmCameraInfoPtr cameraInfo);°dONLNd‘(*4ÿ(1*pascal OSErr CmGetPictureInfo°dONLNd˘6®B8+~(CameraData cameraData, °dONLNdD®PD* unsigned short pictureNo,°dONLNd;R®^b* CmPictureInfoPtr pictureInfo);°dONLNd[k*w¢(t*pascal OSErr CmErase°dONLNdwy®Ö8+~(CameraData cameraData);°dONLNdêí*û¿(õ*pascal OSErr CmEraseAsync°dONLNd±†®¨8+~(CameraData cameraData, °dONLNd—Æ®∫Ê*5 CmAsyncCompletionRoutinePtr asyncCompletionRoutine);ˇ‹@ˇ ˇˇˇˇ@
  1898. ˇ·ˇ‚7^
  1899. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡ä C-Language Summary of the QuickT`)íake 100 Device Driver
  1900. , )Ë2-694^H¿,
  1901. Courier.°dONLNd\Hh(eH#typedef  void (CallbackProc)(void);°dONLNd$jHvt*2typedef CallbackProc* CmAsyncCompletionRoutinePtr;°dONLNdWÉHè*#pascal OSErr CmCancelAsyncOperation°dONLNdÉëÿùh+ê(CameraData cameraData);°dONLNdú™H∂ˆ(≥Hpascal OSErr CmGetStdFeatures°dONLNd¡∏ΔƒV+~(CameraData cameraData, °dONLNd·ΔΔ“í*" CmStdFeaturesPtr stdFeaturesPtr, °dONLNd ‘Δ‡ * short length);°dONLNdÌH˘ˆ(ˆHpascal OSErr CmGetProductInfo°dONLNd@˚ΔV+~(CameraData cameraData, °dONLNd`    ΔÄ* CmProductInfoPtr productInfo);°dONLNdÄ"H.å(+H6pascal OSErr CmRestoreDefaults(CameraData cameraData);°dONLNd∑;HGˆ*pascal OSErr CmSetDateAndTime°dONLNd‹IΔUV+~(CameraData cameraData, °dONLNd¸WΔcÄ* CmDateAndTimePtr dateAndTime);°dONLNdpH|Í(yHpascal OSErr CmSetOwnerName°dONLNd?~ΔäV+~(CameraData cameraData, °dONLNd_åΔòP* BufferPtr* ownerName);°dONLNdw•H±ˆ(ÆHpascal OSErr CmSetPictureMode°dONLNdú≥ΔøV+~(CameraData cameraData, °dONLNdº¡ΔÕn* unsigned char pictureMode);°dONLNdŸ⁄HÊz(„H3pascal OSErr CmSetFlashMode(CameraData cameraData, °dONLNdËΔÙ8+~Boolean flashMode);°dONLNd(Hÿ(
  1902. Hpascal OSErr CmSetSleep °dONLNdHΔV+~(CameraData cameraData, °dONLNdhΔ)8* short sleepDelay);°dONLNd|6HB¸(?Hpascal OSErr CmGetDecompTable °dONLNd¢DΔPV+~(CameraData cameraData, °dONLNd¬RΔ^h* BufferPtr decompTablePtr);°dONLNdfikHwñ(tHpascal OSErr °dONLNdÎkñw2)NCmGetColorCorrectionMatrix°dONLNdk2w8)ú °dONLNdyΔÖV(ÇΔ(CameraData cameraData, °dONLNd.áΔìÄ* CmColorMatrixPtr colorMatrix);ˇ    ™@ˇ ˇˇˇˇ@
  1903. ˇ·ˇ‚7^
  1904. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1905. (‡*2-70    )B C-Language Summary of the QuickT`)íake 100 Device Driver4^*¿¯,
  1906. Courier
  1907. .°dONLNd\*hÃ(e*pascal OSErr CmGetErrorInfo°dONLNd#j®v8+~(CameraData cameraData, °dONLNdCx®Ñ* shortPtr category,°dONLNd^Ü®í* shortPtr detail);°dONLNdqü*´Ã(®*pascal OSErr CmCheckIfReady°dONLNdî≠®π8+~(CameraData cameraData);°dONLNd≠Δ*“¥(œ*pascal OSErr CmSelfTest°dONLNdÑ®‡8+~(CameraData cameraData); .°dONLNdÂÛ*ˇ—(¸*Retrieving and Capturing Images
  1908. .°dONLNd
  1909. *Í* pascal OSErr CmGetThumbnailImage°dONLNd-®$8+~(CameraData cameraData, °dONLNdM&®2D*unsigned short pictureNo, °dONLNdo4®@D*BufferPtr thumbnailBuffer,°dONLNdëB®Nt*"unsigned long numberOfBytesToRead,°dONLNdªP®\*Boolean firstRead,°dONLNd’^®j&*LongPtr actualBytes);°dONLNdÎw*Éí(Ä*<pascal OSErr CmGetThumbnailImageAsync(CameraData cameraData,°dONLNd/Ö®ë>+~unsigned short pictureNo,°dONLNdPì®üD*BufferPtr thumbnailBuffer,°dONLNdr°®≠t*"unsigned long numberOfBytesToRead,°dONLNdúØ®ª*Boolean firstRead,°dONLNd∂Ω®…‡*4CmAsyncCompletionRoutinePtr asyncCompletionRoutine);°dONLNdÎ÷*‚n(fl*6pascal OSErr CmGetFullSizeImage(CameraData cameraData,°dONLNd)‰®>+~unsigned short pictureNo,°dONLNdJÚ®˛,*BufferPtr imageBuffer,°dONLNdh® t*"unsigned long numberOfBytesToRead,°dONLNdí®*Boolean firstRead,°dONLNd¨®(&*LongPtr actualBytes);°dONLNd¬5*Aå(>*;pascal OSErr CmGetFullSizeImageAsync(CameraData cameraData,°dONLNdC®O>+~unsigned short pictureNo,°dONLNd&Q®],*BufferPtr imageBuffer,°dONLNdD_®kt*"unsigned long numberOfBytesToRead,°dONLNdnm®y*Boolean firstRead,°dONLNdà{®á‡*4CmAsyncCompletionRoutinePtr asyncCompletionRoutine);°dONLNdΩî*†V(ù*2pascal OSErr CmTakePicture(CameraData cameraData, °dONLNd˜¢®Æ+~Boolean timerOn);ˇ†@ˇ ˇˇˇˇ@
  1910. ˇ·ˇ‚7^
  1911. 4H\, Palatino&e.3+ä"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Driver Software4⁄ä˙(‡ä C-Language Summary of the QuickT`)íake 100 Device Driver
  1912. , )Ë2-714^H¿,
  1913. Courier.°dONLNd\Hhí(eH7pascal OSErr CmTakePictureAsync(CameraData cameraData, °dONLNd?jΔv,+~Boolean timerOn, °dONLNdXxΔÑ˛*4CmAsyncCompletionRoutinePtr asyncCompletionRoutine);
  1914. ßH≠4®H¨ ©H©
  1915. ˇ·ˇ‚7^ .°dONLNdçúHßä(§H Result Codesˇˇˇˇˇˇa‡(§2
  1916. .°dONLNdõ∞Hºf(πHnoErr.°dONLNd°∞    º)¡0°dONLNd£∞ º<)No errE†°dONLNd©∞=ºF)or`°dONLNd´∞EºJ). .°dONLNdƺH»ä(≈H kCmAIPError., °dONLNd∫º˜»)Ø-6201°dONLNd¿º »R))
  1917. An asynchr<¿°dONLNd ºS»≥)3onous operation is alr5İdONLNd‡º≥»‡)`
  1918. eady in pr*‡°dONLNdͺ‡»Ó)-ogrÙİdONLNd̺Ó»)ess. °dONLNdÚ» ‘*(— WÛ`°dONLNdÛ»)‘â)    indows platform only1‡°dONLNd»â‘é)`. .°dONLNd
  1919. ‘H‡∫(›HkCmAlreadyOpenError., °dONLNd‘˜‡)Ø-6202°dONLNd$‘ ‡[))The CM is alr¿°dONLNd1‘\‡å)<
  1920. eady open..°dONLNd<‡HÏê(ÈH kCmANIPError., °dONLNdI‡˜Ï)Ø-6203°dONLNdO‡ ÏS))
  1921. No asynchrhİdONLNdY‡SÏ·)3 onous operation is outstanding. .°dONLNdzÏH¯ú(ıHkCmBadArgError., °dONLNdâϘ¯)Ø-6204°dONLNdèÏ ¯Ø)) Parameter is or contains an addr‰ °dONLNdØÏد)èess of an invalid data °dONLNdΔ¯ 8( item. .°dONLNdÕHú(HkCmCameraError., °dONLNd‹˜)Ø-6200.°dONLNd‚ .))ErrR`°dONLNdÂ.æ) or detected by the camera. Call R`°dONLNdæ)êCmGetErrorInfoR`°dONLNd)T.°dONLNdHÃ(HkCmCameraNotFoundError., °dONLNd,˜)Ø-6206°dONLNd2 ‰)),Device connected to the port is not a QuickT™Ä°dONLNd^„)√ake 100 °dONLNdf (B(% camera..°dONLNdn(H4ñ(1HkCmCantCancel.°dONLNd}( 45)ÿCurrU¿°dONLNdÅ(54®)ently outstanding asynchr√ °dONLNdö(®4)sonous operation cannot °dONLNd±4 @X(= be canceled. .°dONLNdø@HL‰(IHkCmCurrentlyConnectedError., °dONLNd⁄@˜L)Ø-6205°dONLNd‡@ Lk))The camera is alrè°dONLNdÒ@kL≤)Keady connected..°dONLNdLHXê(UH kCmCommError., °dONLNdL˜X)Ø-6214°dONLNdL X'))A∫†°dONLNdL'Xò) serial communication err∂`°dONLNd.LòX¿)q    or occurr≥@°dONLNd7L¿XÕ)(ed..°dONLNd;XHd“(aHkCmDriverNotLoadedError., °dONLNdSX˜d)Ø-6213°dONLNdYX dÊ))-The camera device driver was not initialized..°dONLNdádHp®(mHkCmNoMemoryError., °dONLNdòd˜p)Ø-6209°dONLNdûd p≤)) System failed to allocate memory=`°dONLNdæd≤p¥)í..°dONLNd¿pH|¿(yHkCmNotConnectedError., °dONLNd’p˜|)Ø-6208°dONLNd€p |'))A∫†°dONLNd‹p'|˝)/ connection with the camera has not been made. .°dONLNd |Hà¥(ÖHkCmNoSuchPortError., °dONLNd|˜à)Ø-6210°dONLNd%| à4))Corrƒ °dONLNd)|4àπ)esponding port does not exist..°dONLNdHàHî¢(ëHkCmNotOpenError.∏¿°dONLNdXà˜î    )Ø-621°dONLNd\à    î)1°dONLNd^à îØ) The CM has not been initialized..°dONLNdîH†®(ùHkCmProtocolError., °dONLNdê)Ø-6212°dONLNdñî †)))PrN†°dONLNdòî*†T)
  1922.  
  1923. otocol errK`°dONLNd¢îT†Ê)*or during communication with a °dONLNd¡† ¨@(© QuickTÄİdONLNd«†@¨Ö) ake 100 camera..°dONLNd◊¨H∏ú(µHkCmSystemError.°dONLNdÁ¨ ∏*)ÿWÛ`°dONLNd˨)∏`)    
  1924. indows DLLË¿°dONLNdÚ¨`∏©)7 failed to either rÒ†°dONLNd¨©∏)Iegister its class or to °dONLNd∏ ƒ((¡ crµ@°dONLNd∏(ƒh)eate a windowò‡°dONLNd,∏hƒm)@. .°dONLNd/ƒH–Ñ(ÕH
  1925. kNoPortErr., °dONLNd:ƒ˜–)Ø-7947°dONLNd@ƒ –4))Corrƒ °dONLNdDƒ4–ª)esponding port does not exist. .°dONLNdd–H‹~(ŸH    kNoPodErr., °dONLNdn–˜‹)Ø-7937°dONLNdt– ‹‰)),Device connected to the port is not a QuickT™Ä°dONLNd†–„‹)√ake 100 °dONLNd®‹ ËB( camera..°dONLNd∞ËHÙ∫(ÒHkSoftwareInstallErr., °dONLNdƒ˘Ù)Ø-7945°dONLNd Ë Ù∑))"Either or both the GeoPort or Shar} °dONLNdÏË∑ÙÁ)ó ed Library °dONLNd˜Ù É(˝ Manager extensions arO‡°dONLNd Ùѯ)de not installed. Macintosh °dONLNd'  \(     platform only_İdONLNd4\ a)<. .°dONLNd7 HÑ(H
  1926. memFullErr., °dONLNdB ¸)¥-108°dONLNdG  î)$Not enough memory to prÊ¿°dONLNd^ î¡)t ocess the r≤İdONLNdi ¬Ï).    equested °dONLNdr $Ω(! "operation. Macintosh platform onlyÍİdONLNdîº$¡)ú. .°dONLNdó$H0x(-HparamErr., °dONLNd†$0)π-50°dONLNd§$ 0Ø) Parameter is or contains an addr‰ °dONLNdƒ$Ø0)èess of an invalid data °dONLNd€0 <¶(9 item. Macintosh platform only`°dONLNd¯0¶<´)Ü. ˇj@ˇ ˇˇˇˇ@
  1927. ˇ·ˇ‚7^
  1928. 4*\¯, Palatino&e.3+l"CHAPTER à)>2,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Driver Software4⁄*˙¯
  1929. (‡*2-72    )B C-Language Summary of the QuickT`)íake 100 Device Driver4^*¿¯ˇ≤@ˇ ˇˇˇˇ@
  1930. ˇ·ˇ‚7^
  1931. 4⁄∫˙, Palatino    3,. Ã+∫#CHAPTER ÿ)h3
  1932. yH4yH H
  1933. ˇ·ˇ‚7^ˇˇu÷ˇÆ°dONLNdZ∫w(p∫QuickT±Ñ°dONLNdZw∫)Sake 100 Imagesˇˇˇˇˇˇä*)¸3
  1934. ^ÇH4`}Cˇˇˇˇˇˇ,     Helvetica    (f
  1935. Figure 3-0*     Listing 3-0*    T)able 3-0ˇò@ˇ ˇˇˇˇ@
  1936. ˇ·ˇ‚7^
  1937. 4*\¯, Palatino&e.3+l"CHAPTER ”)>3,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Images4⁄*˙¯
  1938. (‡*3-2    )BQuickT@)ake 100 Image Sizes4^*¿¯
  1939. °dONLNd\lhF(el1The information in this chapter applies to QuickT@`°dONLNd1\FhÌ)⁄$ake 100 images on the Macintosh and °dONLNdUiluv(rlWÛ`°dONLNdViuu»)    indows platforms. °dONLNdi{láØ(ÑlThis chapter pr°°dONLNdx{Øá^)C(ovides a brief description of the QuickT–@°dONLNd†{]áÜ)Æ    ake 100 fi5¿°dONLNd™{ááÎ)*le format, information °dONLNd¡àlî√(ëlabout the memory rQ‡°dONLNd”àƒî€)Xequiri °dONLNdÿà€î˜)>ements for the display formats supported by the Macintosh and °dONLNdïl°v(ûlWÛ`°dONLNdïu°ø)    indows image prƆ°dONLNd&ï¿°    )Kocessing softwar†°dONLNd6ï
  1940. °·)J1e, and information about the color depth of each °dONLNdg¢lÆ|(´l;display format. For information about how to display QuickTó`°dONLNd¢¢{ÆÀ(´{ake 100 images in °dONLNd¥Ølªv(∏lWÛ`°dONLNdµØuª„)    indows applications, see ñİdONLNdŒØ‰ªm)oChapter 4, “Displaying QuickT%@°dONLNdÎØmªœ)âake 100 Images in a WÛ`°dONLNdØŒªÒ)aindows °dONLNdºl»ß(≈lApplication.”~ °dONLNdº®»t)<, For information about how to display QuickT`°dONLNd@ºt»ı)Ãake 100 images in Macintosh °dONLNd\…l’∑(“lapplications, see ƒ °dONLNdn…∑’@)KChapter 5, “Displaying QuickTR‡°dONLNdã…@’…)âake 100 Images in a Macintosh °dONLNd©÷l‚ß(fllApplication.”°dONLNd∑ËlÙå*QuickTÄİdONLNdΩËåÙ⁄) ake 100 images arp`°dONLNdŒË⁄ÙÚ)Ne stors‡°dONLNd‘ËÚÙl)ed in the camera in a compr+İdONLNdÔËmÙ™){essed format. y@°dONLNd˝Ë™Ù∞)=Y9¿°dONLNd˛Ë∞Ù¡)ou r˚`°dONLNdË¡ÙÒ) etrieve the °dONLNdılà(˛lcompr‡°dONLNdıâfi)essed image data fr6°dONLNd&ıfiÕ)U4om the camera by making function calls to the QuickT¬ °dONLNdZıÃÔ)Óake 100 °dONLNdbl¶( ldevice driverI¿°dONLNdo¶fl): . The QuickTܰdONLNd{fiô)8)ake 100 device driver loads the raw comprƒ`°dONLNd§ôÁ)ªessed image data °dONLNdµls(lfrò‡°dONLNd∑s)om the camera into host memory≈@°dONLNd’3)ë
  1941. . On the W√@°dONLNdfl3∫)/indows platform, the image prò¿°dONLNd¸∫·)á    ocessing °dONLNdl(ç(%lsoftwar‰¿°dONLNd ç(û)!e prıİdONLNdû(-) ovides function calls to decomprΔ`°dONLNd0.(„)ê(ess the raw image data in memory into a °dONLNdX)l5K(2l1format that can be displayed on the host computer @°dONLNdâ)J5”)fi. On the Macintosh platform, a °dONLNd®6lBå(?lQuickTfi‡°dONLNdÆ6åBΔ)  ime decomprK °dONLNdπ6«BÍ);essor pr>°dONLNd¡6ÍBn)#ovides the necessary image prÓ¿°dONLNdfi6nBΩ)Ñocessing services. °dONLNdÚHlT(Ql%On the Macintosh platform, the QuickT
  1942. ‡°dONLNdHTC)Æ    ake 100 fip`°dONLNd!HCT¨))les saved by the QuickT†°dONLNd8H¨Tœ)iake 100 °dONLNd@Ulao(^l;application contain a 512 byte header of application-specifiB °dONLNd|Upa—(^pc data followed by an °dONLNdíbln(klin-memory Macintosh PICT fià†°dONLNd≠bn6)Ñle and a QuickT®@°dONLNdºb5nô)Eake 100 thumbnail defiã¿°dONLNd“bön⁄)enition. QuickT∑†°dONLNd‡bŸnÍ)?ake °dONLNd‰ol{É(xl100 fi ¿°dONLNdÍoÑ{∫)Hles can be displayed on the Macintosh by taking all of the data in the fi„ °dONLNd3o∫{Î(x∫le after the °dONLNd@|làr(Ölfiå¿°dONLNdB|ràÎ)Srst 512 bytes and displaying that data with QuickDraw in the same way that a PICT fiLJ°dONLNdñ|Ïàˆ(ÖÏle °dONLNdôâlï´(ílwith a QuickT2°dONLNd¶â´ï⁄)?    ime compr∏‡°dONLNdØâ⁄ïQ)/essed opcode is displayed. °dONLNdÀõlßs(§lA∫†°dONLNdÃõsßc)5 sample code listing that shows how to use the QuickTì@°dONLNdõcßÔ) ake 100 device driver functions °dONLNd!®l¥{(±lto r|‡°dONLNd%®{¥Í)etrieve raw image data frs °dONLNd>®Í¥,)oom the QuickTöİdONLNdK®+¥Ñ)Aake 100 camera is pr‡@°dONLNd_®Ñ¥≥)Y
  1943. ovided on ,`°dONLNdi®¥¥À)0page @°dONLNdn®Ã¥Ÿ)2-5[ °dONLNdq®Ÿ¥Ê) in °dONLNduµl¡¬(ælChapter 2, “QuickTȆ°dONLNdᵡ¡&)Uake 100 Driver Softwar$†°dONLNdùµ'¡3)fe.”n@°dONLNd†µ3¡5)  
  1944. »*„¯4…*„¯
  1945. Û*˚¯4Ù*˚¯ ı*ı˛
  1946. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNd£‡*Û_(Ó*QuickT·å°dONLNd©‡^ÛÏ)4ake 100 Image SizesˇˇˇˇˇˇV˛(Ó3
  1947. °dONLNdælå(lQuickTÄİdONLNdƒå⁄) ake 100 images arp`°dONLNd’⁄Ú)Ne stors‡°dONLNd€Ú)    ed in thrο°dONLNd‰D)%
  1948. ee image rY °dONLNdÓEí).esolutions: high-r¶Ä°dONLNdíø)M esolution, °dONLNd lç(lstandar±Ä°dONLNdçö)!d-rÊ °dONLNdöw).esolution, and thumbnail. The amount of memoryˇ¿°dONLNdCvæ)‹, in bytes, for thrưdONLNdVøË)I    ee image °dONLNd_l*o('lrE°dONLNd`p*o)8esolutions in the output formats supported by the QuickT›@°dONLNdòn*∏)˛ake 100 image prí@°dONLNd®π*‡)K    ocessing °dONLNd±+l7ç(4lsoftwar‰¿°dONLNd∏+ç7…)!e is shown in 9¿°dONLNdΔ+ 7–)=ToİdONLNd«+œ7Ò)able 3-1}°dONLNdœ+Ò7ˆ)". ˇ2@ˇ ˇˇˇˇ@
  1949. ˇ·ˇ‚7^
  1950. 4H\, Palatino&e.3+ä"CHAPTER ”)>3,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Images4⁄ä˙(‡äImage Color Depth
  1951. , (‡    3-34^H¿
  1952. gHn4gHn jäj
  1953. ˇ·ˇ‚7^    °dONLNd\äg±(dä    Table 3-1°dONLNd
  1954. \»gS)> Memory sizes of supported QuickTÉ0°dONLNd*\Rgœ)äake 100 image formats in bytes°dONLNdKtä¬(|ä Image format°dONLNdXt¸>)rHigh-resolution°dONLNdhtJü)NStandard-resolution°dONLNd|t§—)Z    Thumbnail°dONLNdà~¸âF(ܸ(640 x 480 pixels)°dONLNdõ~Jâî)N(320 x 240 pixels)°dONLNdÆ~§â‰)Z(80 x 60 pixels)
  1955. °dONLNd¿åãò–(ïã ADPCM comprõ@°dONLNdÀå–òË)Eessed冰dONLNd—å ò)<1°dONLNd“åò,)15,200°dONLNdŸå_òz)N28,800ü`°dONLNd‡å∑ò«)Xn/a°dONLNdÂûã™≤(ßã    Color dif`°dONLNdÓû≥™ø)(ferȇ°dONLNdÒûæ™—) ence°dONLNdˆû ™,)N307,200°dONLNd˛û_™z)S76,800°dONLNdû¥™»)U4800°dONLNd ∞㺀(πãThumbnail comprw‡°dONLNd∞€ºÛ)Pessedü`°dONLNd ∞º+)@n/aü`°dONLNd$∞iºy)Nn/a°dONLNd(∞¥º»)K2400°dONLNd.¬ãŒ (Àã8-bit grayscale°dONLNd>¬ Œ,)Å307,200°dONLNdF¬_Œz)S76,800ü`°dONLNdM¬∑Œ«)Xn/a°dONLNdR‘ã‡∑(›ã
  1956. 24-bit DIB°dONLNd]‘ ‡,)Å921,600°dONLNde‘Z‡z)N230,400ü`°dONLNdm‘∑‡«)]n/a°dONLNdrÊãÚ∫(Ôã
  1957. 32-bit RGB°dONLNd}ÊÚ,)y    1,228,800°dONLNdáÊZÚz)V307,200ü`°dONLNdèÊ∑Ú«)]n/a°dONLNdì¯ä∫(äCDIB (device-independent bitmap) is the native image format for MicrD°dONLNd÷¯ª›(ªosoft Wı†°dONLNd›¯‹)!indows. °dONLNdÂä•(äCThis array of RGB triples contains only the image data. It is the r∂İdONLNd(•˚(•esponsibility of the °dONLNd=äî(äWÛ`°dONLNd>ìÙ)    indows application prP`°dONLNdSıõ)b$ogrammer to imbed the data in the pr¶‡°dONLNdwõˆ)¶oper bitmap format. 
  1958. %H@4&H@
  1959. PHX4QHX RHR
  1960. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNdç=HP“(KHImage Color DepthˇˇˇˇˇˇV˛(K3
  1961. °dONLNd†aämæ(jä
  1962. The QuickTº@°dONLNd™aΩm)3ake 100 image prq@°dONLNd∫amQ)Kocessing softwar»@°dONLNd aQm°)Ie converts QuickT+`°dONLNd€a°m˙)Pake 100 images into °dONLNdÔnäz≤(wä    display-rS†°dONLNd¯n≤z‰)( eady pictur±`°dONLNdn‰z“)25es with the color depth and display formats shown in 7@°dONLNd8n”zŸ)ÔTm°dONLNd9nÿz˙)able 3-2zİdONLNdAn˙zˇ)". 
  1963. ûH¶4üH¶ ¢ä¢
  1964. ˇ·ˇ‚7^    °dONLNdDîäü±(úä    Table 3-2°dONLNdNî»üx)>-Picture display formats and color resolutions°dONLNd~¨ä∑»(¥äDisplay format°dONLNdç¨fi∑)TBits per pixel°dONLNdú¨,∑H)NColors°dONLNd£¨n∑fi)BOperating-system support
  1965. °dONLNdΩ∫äΔµ(√ä    Grayscale°dONLNd«∫fiΔ„)T8°dONLNd…∫,Δ;)N256°dONLNdÕ∫nΔº)BMacintosh, MS W燰dONLNd‹∫ºΔ‹)Nindows°dONLNd‰Ãäÿù(’äDIB °dONLNdÈÃfiÿË)T24°dONLNdÏÃ,ÿ_)N 16.7 million°dONLNd˘Ãnÿx)BWÛ`°dONLNd˙Ãwÿó)    indows°dONLNdfiäÍû(ÁäRGB°dONLNdfifiÍÎ)T32*°dONLNd
  1966. fi,Í_)N 16.7 million°dONLNdfinÍú)B    Macintosh°dONLNd!专(˘ä* The 32-bits-perG@°dONLNd2”¸/)I-pixel RGB format pr‰†°dONLNdF/¸¬)\#ovides only 24 bits of color using °dONLNdi¸äı(äthe form NULL, Red, Gr4İdONLNd¸ˆ )l
  1967. een, Blue.ˇ2@ˇ ˇˇˇˇ@
  1968. ˇ·ˇ‚7^
  1969. 4*\¯, Palatino&e.3+l"CHAPTER ”)>3,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Images4⁄*˙¯
  1970. (‡*3-4    )BImage Color Depth4^*¿¯ˇ0@ˇ ˇˇˇˇ@
  1971. ˇ·ˇ‚7^
  1972. 4⁄∫˙, Palatino    3,. Ã+∫#CHAPTER ÿ)h4ˇˇu÷ˇÆ°dONLNdZ∫wì(p∫Displaying QuickT‰ˆ°dONLNdZëwÏ)◊ake 100 °dONLNdz∫ó](ê∫Images in a W%Ó°dONLNd&z\ó∑)¢indows 
  1973. πHX4πHX RHR
  1974. ˇ·ˇ‚7^°dONLNd-ö∫∑A(∞∫ Applicationˇˇˇˇˇˇä*(∞    4
  1975. ^ÇH4`}Cˇˇˇˇˇˇ,     Helvetica    (f
  1976. Figure 4-0*     Listing 4-0*    T)able 4-0ˇº@ˇ ˇˇˇˇ@
  1977. ˇ·ˇ‚7^
  1978. 4*\¯, Palatino&e.3+l"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@lDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄*˙¯
  1979. (‡*4-2    )B Using the Wć)1
  1980. indows IPM4^*¿¯
  1981. °dONLNd\lhØ(elThis chapter pr°°dONLNd\ØhÑ)C/ovides an overview of the technology used to pr°dONLNd>\Ñhæ)’ ocess QuickT)‡°dONLNdJ\æh·):ake 100 °dONLNdRilu(rl$images for display with the Image Pr”@°dONLNdviuù)£ocessing Module (IPM) in the W¿°dONLNdîiûuı)èindows application °dONLNdßvlÇÉ(lenvirn†°dONLNd¨vÉÇè)>onment. It also describes the data types and functions that ará¿°dONLNdÍvèdž(èe pròİdONLNdÓv†Ç›)ovided in the °dONLNd¸Élèv(ålWÛ`°dONLNd˝ÉuèK)    .indows IPM dynamic link library for the QuickTpİdONLNd+ÉKèì)÷ake 100 camera. °dONLNd<ïl°!(ûl(This chapter does not attempt to teach WZ¿°dONLNddï!°N)µ    indows prć°dONLNdmïN°Ü)- ogramming. ;`°dONLNdxïá°ç)9Y˚‡°dONLNdyïå°Ì)ou should be familiar °dONLNdè¢lÆ¥(´lwith the softwar@°dONLNdü¢µÆÿ)I    e tools rˆ†°dONLNd®¢◊ÆÓ)"equir‡°dONLNd≠¢ÔÆR)ed to use the IPM DLLä°dONLNd¬¢RÆz)c     in the WİdONLNdÀ¢zÆß)(    indows pr:†°dONLNd‘¢߯›)-
  1982. ogramming °dONLNdfiØlªÉ(∏lenvirn†°dONLNd„ØÉªß)onment.°dONLNdΡlÕ5( l+For information about how to display QuickTä@°dONLNd¡5ÕΔ)… ake 100 images in the Macintosh °dONLNd6Œl⁄∑(◊lapplication envir•İdONLNdGŒ∑⁄Ó)K onment, see Ó°dONLNdSŒÓ⁄w)7Chapter 5, “Displaying QuickT|¿°dONLNdpŒw⁄œ)âake 100 Images in a °dONLNdÑ€lÁú(‰l
  1983. Macintosh  °dONLNdé€ùÁÿ)1Application.”@°dONLNdõ€ŸÁ€)< 
  1984. Ó*    ¯4Ô*    ¯
  1985. *!¯4*!¯ *˛
  1986. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNdû*Ñ(* Using the W¢¶°dONLNd©É€)Y
  1987. indows IPMˇˇˇˇˇˇV˛(4
  1988. °dONLNdµ*l6ó(3l    Images arç@°dONLNdæ*ó6Ø)+e storê¿°dONLNdƒ*Ø6¯)ed in the QuickTç¿°dONLNd‘*¯6m)Iake 100 camera in a compr°†°dONLNdÌ*m6Ë)uessed format that cannot be °dONLNd    7lCo(@lrE°dONLNd
  1989. 7pC?).eadily displayed by the operating system. Ther«Ä°dONLNd87?CP)œeforİdONLNd<7QCÕ)e, it is necessary to decompr(°dONLNdY7ÕC)|ess and °dONLNdaDlP¡(Mlconvert the QuickTπ‡°dONLNdsD¿P€)T@ake 100 images into a data format that the operating system can °dONLNd≥Ql]å(Zldisplay°dONLNd∫Qå]Õ) . The IPM DLLNİdONLNd«QÕ]Ÿ)A prdONLNd QŸ]R) ovides the functions that WÆ@°dONLNdÂQR] )yindows applications call to °dONLNd^ljì(gldecomprÊ@°dONLNd^ìj˙)'ess and convert QuickTÛİdONLNd^˙jC)gake 100 images r„`°dONLNd.^Cjq)I etrieved fr∏İdONLNd9^qj).om the camera into a format °dONLNdUklwr(tl:that the operating system can display on the host computerΔ‡°dONLNdèkqwv(tq. °dONLNdí}lâ®(Ül The IPM DLLØÄ°dONLNdù}®â√)< for Wfi‡°dONLNd£}√â¥)indows is a collection of functions that convert QuickT İdONLNd⁄}¥â◊)Òake 100 °dONLNd‚älñ„(ìlcamera images to display-rfi °dONLNd¸ä„ñ,)weady RGB pictur&¿°dONLNd ä-ñè)Je formats. The QuickTº°dONLNd äéñŒ)aake 100 image °dONLNd.ól£u(†lprG °dONLNd0óv£ø)
  1990. ocessing softwarû °dONLNd@óø£Ë)IBe supports display of grayscale, RGB, and DIB output formats. The °dONLNdǧl∞∑(≠lIPM supports dif∑†°dONLNdí§∑∞√)Kferö °dONLNdï§√∞ñ) +ential pulse-code modulation (DPCM) decomprá°dONLNd¿§ñ∞Œ)”ession, edge °dONLNdÕ±lΩÍ(∫lenhancement, and color corri¿°dONLNd˱ÍΩi)~ection. The default color corrè¿°dONLNd±iΩfi)ection settings of a QuickT`°dONLNd!±fiΩÔ)uake °dONLNd%æl K(«l0100 image can be overridden with the IPM softwar  °dONLNdUæL ™)‡e to accommodate difÁ@°dONLNdiæ™ ∂)^fer…¿°dONLNdlæ∂ ·)
  1991. ent video °dONLNdvÀl◊S(‘l6display characteristics. In addition, IPM functions arä@°dONLNd¨ÀS◊d)Áe prõ°dONLNd∞Àd◊∂)ovided for image r∂`°dONLNd¬À∂◊Î)R otation and °dONLNdŒÿl‰;(·l.for adjusting color output using camera-specifié@°dONLNd˝ÿ;‰õ)œc color characteristics.°dONLNdÍlˆÄ(ÛlTher¿°dONLNdÍňë)e ar`°dONLNdÍëˆö)9e two fundamental methods that can be used for the QuickTı¿°dONLNdWÍôˆŸ(Ûôake 100 image °dONLNde˜lì(ldecomprÊ@°dONLNdl˜ì)'ession and conversion pr@°dONLNdј◊)o-ocess with the IPM: banded and unbanded. The °dONLNd±lÙ(lbanded method handles a userù°dONLNdÕÙ)à-specifi_°dONLNd’Ù) 1ed strip of the image, while the unbanded method °dONLNdl(l$handles the complete image in memory ¿°dONLNd*)Æ. Û °dONLNd,$)Y≥†°dONLNd-$Ü)ou may wish to try difİdONLNdCáì)cferͰdONLNdFífi) ent band sizes to °dONLNdXl*('l optimize the image conversion prÁ‡°dONLNdx*É)îocess for various system confiµ °dONLNdñÑ*≥)Ñ gurations. °dONLNd¢0l<›(9lSAn image band is a full-width portion of an image that can begin with any line and °dONLNdı=lIN*2extend to the height of the image. Banded image pr≠@°dONLNd    '=NIâ)‚ocessing is pr °dONLNd    5=äIÛ)<ovided for situations in °dONLNd    NJlVõ(Sl
  1992. which therÙ¿°dONLNd    XJõVQ)/(e is not enough memory on the host to pr7İdONLNd    ÄJRVÁ)∑"ocess a full image or when only a °dONLNd    ¢Wlc'(`l+full-width portion of the image is needed. 3°dONLNd    ÕW'c‚)ª+An example of the latter case might be for °dONLNd    ¯dlpo(mlrE°dONLNd    ˘dpp9)-edisplaying a portion of an image that was prO@°dONLNd
  1993. &d9py)…eviously covers@°dONLNd
  1994. 4dyp›)@ed by another window@°dONLNd
  1995. Hd›p‚)d. ʆ°dONLNd
  1996. Jd·pÁ)Yß °dONLNd
  1997. KdÁpÙ)ou °dONLNd
  1998. Nql}—(zlcan also use banded prãİdONLNd
  1999. dq—}q)e%ocessing to display bands of a picturT¿°dONLNd
  2000. âqr}£)° e as they ar ‡°dONLNd
  2001. ïq§}µ)2e pr†°dONLNd
  2002. ôqµ}‰) ocessed to °dONLNd
  2003. §~läõ(ál indicate pr@°dONLNd
  2004. Ø~úä™)0ogr ‡°dONLNd
  2005. ≤~™äË)ess to the userf¿°dONLNd
  2006. ¡~ËäÌ)>. ˇl@ˇ ˇˇˇˇ@
  2007. ˇ·ˇ‚7^
  2008. 4H\, Palatino&e.3+ä"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@äDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄ä˙(‡ä Using the Wć)1
  2009. indows IPM
  2010. , (‡    4-34^H¿
  2011. ^Hk4^Hk    °dONLNd\ägù(däNote
  2012. ˇ·ˇ‚7^
  2013. °dONLNd
  2014. iäu™*When r1`°dONLNdi´uº)!;otating an image using either the banded or unbanded image °dONLNdKuäÅì(~äprG °dONLNdMuîÅ+)
  2015. #ocessing method, the full-color dif9†°dONLNdpu+Å7)ófer °dONLNdsu7Åî) ence image must be rv‡°dONLNdáuîÅ¡)] esident in °dONLNdíÅäçØ(äämemoryÕ °dONLNdòÅÆç·)$ . Banded prİdONLNd£Å‚ç´)4,ocessing does not apply to thumbnail images.,Zapf Dingbats¥@°dONLNd–Ñ∞å∂)Œu
  2016. @°dONLNd—Å∑çπ) .°dONLNd”íäû◊(õäBanded image prR`°dONLNd‚í◊ûc)Mocessing is performed with the ,
  2017. CourierR`°dONLNdícû’)åIpConvertADPCMtoRGBR`°dONLNdí’û)r function. The °dONLNd#üä´˝(®äportion of the image to prR`°dONLNd=ü˝´=)socess is specifiR`°dONLNdMü=´u)@ ed with the R`°dONLNdYüu´√)8aStartingLineR`°dONLNdfü√´ÿ)N and °dONLNdk¨ä∏ÿ(µäaLinesPerBand°dONLNdx¨ÿ∏fi)N fPİdONLNdz¨fi∏)ields in the PİdONLNdá¨∏h)6ImageAttributePİdONLNdï¨h∏é)T     data str<İdONLNdû¨é∏§)&uctur‡°dONLNd£¨§∏È)e. The value of °dONLNd≥πä≈ÿ(¬äaStartingLine°dONLNd¿πÿ≈S)N must be 0 or an even number¬†°dONLNd‹πR≈j)z, and ¬†°dONLNd‚πj≈∏)aLinesPerBand¬†°dONLNdÔπ∏≈)N must be an even .°dONLNdΔä“÷(œänumber that is gr¿°dONLNdΔ÷“F)Leater than or equal to 2. Tï`°dONLNd,ΔF“W)po prR°dONLNd0ΔX“˛)(ocess the full image with a single call .°dONLNdX”äfl≈(‹ä (unbanded prR`°dONLNdd”≈fl);ocessing), set R`°dONLNds”flO)<aStartingLineR`°dONLNdÄ”Oflv)N
  2018.  to 0 and R`°dONLNdä”vflƒ)'aLinesPerBandR`°dONLNdó”ƒfl¸)N to the total .°dONLNd•‡äÏ(Èäimage height in pixels. .°dONLNdæÚä˛û*The °dONLNd¬Úû˛Ú)ImageAttribute°dONLNd–ÚÚ˛)T     data strl°dONLNdŸÚ˛.)&uctur>`°dONLNdfiÚ.˛n)e is shown her¿°dONLNdÏÚn˛Ω)@e and further defi¿°dONLNd˛ÚΩ˛⁄)Oned in ¿°dONLNdÚ⁄˛ˇ)“Data T*¿°dONLNd Ú˛˛)$ypes .°dONLNdˇä ≥(ä    for the Wå¿°dONLNdˇ≥ s))(indows IPM Functions” beginning on page %¿°dONLNdBˇt Å)¡4-4y†°dONLNdEˇÅ Ü). .°dONLNdHä$å(!ä+typedef struct imageAttribute { /* input */°dONLNdu&ú22+unsigned short aImgWidth;°dONLNdê4ú@8*unsigned short aImgLength;°dONLNdµB>NÏ+¢/* output image attributes */°dONLNd‘Pú\fi(Yú IpPixelType°dONLNdÂP\J)l aPixelType;°dONLNdÚ^újfi(gú RotateAngle°dONLNd^j2)laAngle;°dONLNd lúx(uúunsigned short°dONLNd lx\)laStartingLine;°dONLNd0zúÜ(Éúunsigned short°dONLNdDzÜ\)laLinesPerBand;°dONLNdTàúîÃ(ëúBoolean °dONLNdbàîD)l
  2019. firstBand;°dONLNdnñú¢Ã(üúBoolean °dONLNd|ñ¢>)l    lastBand;°dONLNdܧä∞ê(≠ä}°dONLNdà§ú∞ˆ)ImageAttribute;°dONLNdòºä»û(≈äThe °dONLNdúºû»‘)    firstBand°dONLNd•º‘»È)6 and °dONLNd™ºÈ»)lastBand°dONLNd≤º»")0 fi°dONLNdµº"»T)     elds in the °dONLNd¡ºT»®)2ImageAttribute°dONLNdœº®»Œ)T     data strl°dONLNdÿºŒ»‰)&uctur>`°dONLNd›º‰»)    e can be .°dONLNdÊ…ä’è(“ä5used to optimize performance and to manage memory mor˝‡°dONLNd…è’û(“èe ef7`°dONLNd…ü’•)fiD °dONLNd!…•’¬)ciently’‡°dONLNd(…¡’‚). When .°dONLNd/÷ä‚¿(flä    firstBand°dONLNd8÷¿‚Ã)6 is °dONLNd<÷‰) TRUE°dONLNd@÷‰‚j), the IPM allocates a color difR`°dONLNd_÷j‚w)Üfer$¿°dONLNdb÷w‚’)ence image (CDI) buf˜ °dONLNdv÷‘‚)]fer as needed .°dONLNdÑ„äÔô(Ïäor r- °dONLNdà„öÔ”)euses the buf”‡°dONLNdï„”ÔË)9fer fr|‡°dONLNdõ„ÈÔ )om a prçİdONLNd¢„ Ô<)" eviously pr^°dONLNd≠„=ÔÒ)2)ocessed image. In either case, it decompr;†°dONLNd÷„ÒÔ    )¥esses .°dONLNd‹ä¸(˘äthe image to get the CDI. When °dONLNd˚¸S)ì    firstBand°dONLNdS¸_)6 is °dONLNd_¸}) FALSE°dONLNd}¸)#, it indexes into the existing CDI °dONLNd0˝ä    ò(äbufR`°dONLNd3˝ò    •)ferï°dONLNd6˝§    ¿) , accorg`°dONLNd=˝¿    ,)ding to the value in the g`°dONLNdV˝,    z)laStartingLineg`°dONLNdc˝z    É)N fig`°dONLNdf˝É    ¨)    
  2020. eld, to pr9¿°dONLNdp˝¨    ⁄)) ocess the r  °dONLNd{˝⁄    ).    equested .°dONLNdÑ
  2021. ä•(äband. 
  2022. $H24%H2    °dONLNdã#ä.ù*Note
  2023. ˇ·ˇ‚7^
  2024. °dONLNdê0ä<∞*In the W†°dONLNdò0∞<Í)& indows envirN@°dONLNd§0Í<ï):'onment it is possible to have a CDI bufã °dONLNdÀ0ï<…)´fer for each °dONLNdÿ<äH“(Eäapplication interA†°dONLNdÈ<”H8)Iested in using the IPM.ÒİdONLNd?=GC)ju
  2025. ?İdONLNd<DHF) .°dONLNdMäYê(VäTï°dONLNdMèY≥)able 4-1ï°dONLNdM≥Y)$ shows how to use the ï°dONLNd#MYL)c    firstBandï°dONLNd,MLYa)6 and ï°dONLNd1MaYë)lastBandï°dONLNd9MëYö)0 fiï°dONLNd<MöYÃ)     elds in the °dONLNdHZäffi(cäImageAttribute°dONLNdVZfif)T     data strl°dONLNd_Zf)&uctur>`°dONLNddZf6)e to pr¿°dONLNdkZ6f—)"ocess two images using the CDI buf„ °dONLNdçZ–f)öfer allocated .°dONLNdõgäsØ(pä    for the fi& °dONLNd•g∞s˜)&rst image. The fiu¿°dONLNd∂g˜s6)Grst image is pri`°dONLNd≈g6sr)?ocessed in thr
  2026. †°dONLNd”gss )="ee bands, and the second image is °dONLNdıtäÄì(}äprG °dONLNd˜tîÄ)
  2027. ocessed in the same CDI buf/`°dONLNdtÄX)}fer in one band. ˇ\@ˇ ˇˇˇˇ@
  2028. ˇ·ˇ‚7^
  2029. 4*\¯, Palatino&e.3+l"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@lDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄*˙¯
  2030. (‡*4-4    )B!Image Processing Module Reference4^*¿¯
  2031. g*n¯4g*n¯ jlj¯
  2032. ˇ·ˇ‚7^°dONLNd\lgì(dl    Table 4-1°dONLNd
  2033. \™g;)> Memory and image band processing°dONLNd-tmá(|mImage°dONLNd3tê¶)#Band,
  2034. Courier.°dONLNd8tπÔ))    firstBand°dONLNdBt¸,)ClastBand.°dONLNdKt8fi)<#Memory use and processing technique
  2035. °dONLNdpÇléq(ãl1°dONLNdrÇêéï)$1.°dONLNdtÇπé—))TRUE°dONLNdyǸé)CFALSE.°dONLNdÇ8éª)<Allocate the CDI working buff°dONLNdõǪé«)Éfer∏¿°dONLNdûÇΔéÀ) , °dONLNd†ç8ô_(ñ8decomprÊ@°dONLNdßç_ôÎ)' ess the image, and generate the °dONLNd«ò8§O(°8CDI. T`°dONLNdÃòO§r)After prµ@°dONLNd‘òr§–)#ocessing, the CDI bufφ°dONLNdÈò–§Ë)^fer is °dONLNd£8Ø;(¨8rE°dONLNdÒ£<Øa)    etained. °dONLNd¸µl¡q(æl1°dONLNd˛µê¡ï)$2.°dONLNdµπ¡◊))FALSE°dONLNdµ¸¡)CFALSE.°dONLNd µ8¡A)<PrN†°dONLNdµB¡∑)
  2036. eviously allocated CDI buf°dONLNd(µ∏¡Û)vfer is used to °dONLNd7¿8ÃA(…8prG °dONLNd9¿Bî)
  2037. ocess the second band. Ω¿°dONLNdP¿®ÃÀ)fAfter pr†°dONLNdX¿ÃÈ)$
  2038. ocessing, °dONLNdbÀ8◊k(‘8 the CDI bufE °dONLNdmÀl◊à)4fer is r?†°dONLNduÀà◊´)etained.°dONLNd›lÈq(Êl1°dONLNdÅ›êÈï)$3.°dONLNdÉ›πÈ◊))FALSE°dONLNd⛸È)CFALSE.°dONLNdè›8ÈA)<PrN†°dONLNdë›BÈ∑)
  2039. eviously allocated CDI buf°dONLNd´›∏ÈÛ)vfer is used to °dONLNd∫Ë8ÙA(Ò8prG °dONLNdºËBÙ{)
  2040. ocess the thir°dONLNd Ë|Ù†):d band. ¡ °dONLNd“ËüÙ¬)#After pr"°dONLNd⁄Ë√ÙÌ)$
  2041. ocessing, °dONLNd‰Û8ˇk(¸8 the CDI bufE °dONLNdÔÛlˇà)4fer is r?†°dONLNd˜Ûàˇ´)etained.°dONLNdlq(l2°dONLNdêï)$1.°dONLNdπ—))TRUE°dONLNd
  2042. ¸)CTRUE.°dONLNd8A)<PrN†°dONLNdB∑)
  2043. eviously allocated CDI buf°dONLNd+∏Û)vfer is used to °dONLNd:8A(8prG °dONLNd<Bo)
  2044. ocess the r‡°dONLNdGp).equested band of the second °dONLNdc8'X($8image. 6¿°dONLNdjX'{) After pró†°dONLNdr{'Ÿ)#ocessing, the CDI bufœ°dONLNdáŸ'Ò)^fer is .°dONLNdé&82u(/8deallocated (°dONLNdõ&u2œ)=lastBand = True°dONLNd™&œ2ÿ)Z). °dONLNd≠&ÿ2⁄)     
  2045. U*\¯4V*\¯ WlW¯
  2046. ˇ·ˇ‚7^ˇˇ‹..ˇ◊°dONLNdØFlU‡(QlIPM Error Handlingˇˇˇˇˇˇ€r(Q4
  2047. °dONLNd√\lh¡(elAll IPM functions rÖ†°dONLNd÷\¡hÈ)UEeturn a value either indicating successful completion or detailing a °dONLNdiluÑ(rlfailurp¿°dONLNd!iÑuÁ)e status. The include fiᆰdONLNd9iÁu)c le ipm.h defi;†°dONLNdFiu—)8'nes the values and mnemonics for these °dONLNdmvlÇ≠(lconditions. ErrΩ@°dONLNd|v≠Ç√)A@ors also appear in the “Result Codes” section for each function °dONLNdºÉlè¢(åldescription. 
  2048. ñ*±¯4ó*±¯
  2049. ¡*…¯4¬*…¯ √*√˛
  2050. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNdÀÆ*¡k(º*Image PrãİdONLNd”Æk¡)Aocessing Module ReferbZ°dONLNdËÆ¡/)§enceˇˇˇˇˇˇV˛)·4
  2051. °dONLNdÓ“lfiÂ(€lTThe following sections describe the data types and functions supported by the Image °dONLNdBfllÎu*PrN†°dONLNdDflvÎ≈)
  2052. ocessing Module. 
  2053. ˘*¯4˙*¯    °dONLNdV¯l(lNote
  2054. ˇ·ˇ‚7^
  2055. °dONLNd[lÃ*This information is prø`°dONLNdqÃ)`ovided to give WW@°dONLNdÅE)L    indows pr}`°dONLNdäE®)-ogrammers an idea of °dONLNdül–(lhow to use the QuickT¡`°dONLNd¥œ)cake 100 image prv`°dONLNdƒc)Kocessing softwarÕ`°dONLNd‘cû)Ie that will be °dONLNd„l)Â(&lavailable sometime in 1994.,Zapf Dingbats‡°dONLNdˇ Î(Ò)u
  2056. P‡°dONLNdÒ)Û) 
  2057. T*\¯4U*\¯ W*W˛
  2058. ˇ·ˇ‚7^°dONLNdD*TS(P*Data T∏ °dONLNdDRT¨)(ypes for the WÖ°dONLNdD¨T8)Zindows IPM Functionsˇˇˇˇˇˇ(PÒ4
  2059. °dONLNd,\lh+(el.This section describes all of the data types r¿°dONLNdZ\+h;)øeferú‡°dONLNd^\<h÷)"enced by the IPM functions. These °dONLNdÄilu(rl(declarations can be found in the ipm.h fi„İdONLNd©iu*)≤le. ˇ@ˇ ˇˇˇˇ@
  2060. ˇ·ˇ‚7^
  2061. 4H\, Palatino&e.3+ä"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@äDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄ä˙(‡ä!Image Processing Module Reference
  2062. , (‡    4-54^H¿
  2063. jHr4jHr lHl
  2064. ˇ·ˇ‚7^ °dONLNd\Hjú(fHImageAttributeˇˇˇˇˇˇ(f4
  2065. .°dONLNd{äáû(ÑäThe ,
  2066. Courier°dONLNd{ûáÚ)ImageAttribute°dONLNd"{Úá)T strl°dONLNd&{á)uctur>`°dONLNd+{á')e pr¿°dONLNd/{'á˛)/ovides information about the size of the QuickT%¿°dONLNd^{˝á)÷ake .°dONLNdbàäîØ(ëä100 sour~†°dONLNdjàØî¸)%ce image and defi,‡°dONLNd{à˝î)N?nes the parameters to be used by the IPM for the image output. .°dONLNdª°ä≠å(™ä+typedef struct imageAttribute { /* input */°dONLNdËØúª2+unsigned short aImgWidth;°dONLNdΩú…8*unsigned short aImgLength;°dONLNdÀú◊J*/* output image attributes */°dONLNd>ŸúÂfi* IpPixelType°dONLNdOŸÂJ)l aPixelType;°dONLNd\ÁúÛfi(ú RotateAngle°dONLNdmÁÛ2)laAngle;°dONLNdvıúP(˛ú/* image banding parameters */°dONLNdñú*unsigned short°dONLNd™\)laStartingLine;°dONLNd∫ú(úunsigned short°dONLNdŒ\)laLinesPerBand;°dONLNdfiú+Ã((úBoolean °dONLNdÏ+D)l
  2067. firstBand;°dONLNd¯-ú9Ã(6úBoolean °dONLNd-9>)l    lastBand;°dONLNd;äGê(Dä}°dONLNd;úGˆ)ImageAttribute;
  2068. UHd4UHc    .°dONLNd"Tä_÷(\äField descriptions
  2069. ˇ·ˇ‚7^
  2070. .°dONLNd5aäm¿*    aImgWidth.°dONLNd?aÊmÅ)\%Horizontal size of image, in pixels. .°dONLNdepä|Δ(yä
  2071. aImgLength.°dONLNdppÊ|Ì)\Vú`°dONLNdqpÏ|r)"ertical size of image, in pixels. .°dONLNdîäãΔ(àä
  2072. aPixelType.°dONLNdüÊãd)\Color or gray; bits per pixel. .°dONLNdøãÊó
  2073. * kGray8°dONLNd≈ã
  2074. óÉ)$ = 8-bit (256 levels of gray)°dONLNd„óÊ£
  2075. (†ÊkDIB24°dONLNdÈó
  2076. £Ö)$ = 24-bit (16 million colors) °dONLNd¶ä≤Æ(ØäaAngle°dONLNd¶Ê≤ö)\(Rotation angle of output image. See the °dONLNd7¶ö≤‹)¥ RotateAngle°dONLNdB¶‹≤Í)B strl°dONLNdF¶Í≤)uctur>`°dONLNdK¶≤)e .°dONLNdM≤Êæ!(ªÊdescribed on °Ä°dONLNdZ≤!æ8);page |`°dONLNd_≤9æF)4-6–@°dONLNdb≤FæK). .°dONLNde¡äÕÿ( äaStartingLine.°dONLNds¡ÊÕõ)\)Starting line number of the output band. .°dONLNdù–ä‹ÿ(ŸäaLinesPerBand.°dONLNd´–Ê‹Ü)\$Number of full-width lines in band. .°dONLNd–fläο(Ëä    firstBand°dONLNd⁄flÊÎ)\Set to °dONLNd·flÎ)TRUE°dONLNdÂflÎ2) for fi°dONLNdÏfl2Îë)rst band of an image. °dONLNdÓä˙∫(˜älastBand°dONLNd ÓÊ˙)\Set to °dONLNdÓ˙)TRUE°dONLNdÓ˙3) for frR`°dONLNdÓ3˙t)ee working buf$¿°dONLNd,Ót˙ä)Afers. °dONLNd3ˇä •(äBe surR`°dONLNd9ˇ• Â)e to set up the R`°dONLNdIˇÂ 9)@ImageAttributeR`°dONLNdWˇ9 G)T str>`°dONLNd[ˇG ])uctur¿°dONLNd`ˇ] ¿)e to disable banded pr„ °dONLNdvˇø )bocessing when °dONLNdÑ ä∞(ädecomprR`°dONLNdã ∞E)& essing thumbnail data. Both the R`°dONLNd´ Eì)ïaStartingLineR`°dONLNd∏ ì®)N and R`°dONLNdΩ ®ˆ)aLinesPerBandR`°dONLNd  ˆˇ)N fiR`°dONLNdÕ ˇ)    elds °dONLNd“ä%«("ämust be set to °dONLNd·«%Õ)=0°dONLNd‚Õ%), or a call to °dONLNdÒ%é)7IpConvertThumbnailToRGB°dONLNdé%™)ä will rR`°dONLNd™%À)eturn a °dONLNd&ä2fi(/äkCmBadArgError°dONLNd%&fi2Ì)T errR`°dONLNd)&Ì2ˆ)orï°dONLNd+&ı2)    . For morg`°dONLNd4&2ú)'e information about decompr9¿°dONLNdO&ú2    )Äessing thumbnail image °dONLNdf3ä?(<ädata, see the description of °dONLNdÉ3?ë)}IpConvertThumbnailToRGB°dONLNdö3ë?≈)ä function on °dONLNdß3≈?›)4page °dONLNd¨3›?)4-10°dONLNd∞3?ı). ˇˇnx°dONLNd≥EäQÈ(NäWhen you display a r @°dONLNd«EÍQI)`otated image, set the ˇ˛KhΔ °dONLNd›EIQó)_aStartingLineˇˇnxΔ °dONLNdÍEóQ™)N and ˇ˛Kh£°dONLNdÔE´Q˘)aLinesPerBandˇˇnx£°dONLNd¸E˘Q)N fià°dONLNdˇEQ)    elds .°dONLNdRä^√([äso that they r: °dONLNdRƒ^):efer to the entir≥‡°dONLNd#R^)Ce r¬Ä°dONLNd&R^Ê) /otated image. For example, a 320 by 240 image rô¿°dONLNdURÊ^)‘otated °dONLNd\_äkΔ(häeither 90 degr;İdONLNdj_«k    )=ees or 270 degr-`°dONLNdy_    k’)B0ees will have a height of 320 lines when fully r*†°dONLNd©_’k    )à otated. The .°dONLNdµläx(uäspan of the image will range frR`°dONLNd‘lxì)ãom 0 to 320 during banded pr$¿°dONLNdlìx–)~ocessing. The $¿°dONLNd˛l–x)=    aImgWidth$¿°dONLNdlx)6 °dONLNdyäÖù(Çäand °dONLNd yùÖŸ)
  2077. aImgLength°dONLNdyŸÖ‚)< fi°dONLNdy‚Ö˚)    elds rR`°dONLNdy˚Ö?)efer to the nonr$¿°dONLNd/y?Ö¬)Dotated image values. For mor˜ °dONLNdKy¡Ö)Çe information .°dONLNdYÜäíÕ(èäabout image pr¢‡°dONLNdgÜÕí{)C(ocessing, see the discussion of image prJ °dONLNdèÜ|í÷)Øocessing starting on ÄİdONLNd§Ü÷íÌ)Zpage [`°dONLNd©ÜÓí˚)4-2Ø@°dONLNd¨Ü˚í) and .°dONLNd±ìäüÓ(úäthe description of the °dONLNd»ìÓü`)dIpConvertADPCMToRGB°dONLNd€ì`üî)r function on °dONLNdËìîü¨)4page °dONLNdÌì¨ü∫)4-1Û`°dONLNdìπüæ)1Û`°dONLNdÒìæü√). ˇV@ˇ ˇˇˇˇ@
  2078. ˇ·ˇ‚7^
  2079. 4*\¯, Palatino&e.3+l"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@lDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄*˙¯
  2080. (‡*4-6    )B!Image Processing Module Reference4^*¿¯
  2081. j*r¯4j*r¯ l*l˛
  2082. ˇ·ˇ‚7^ °dONLNd\*jz(f*Characteristicsˇˇˇˇˇˇ(fÚ4
  2083. ˇˇÃR.°dONLNd{lá(ÑlThe ,
  2084. CourierˇˇdˆLR°dONLNd{Äá⁄)CharacteristicsˇˇÃRLR°dONLNd${⁄áÁ)Z str§°dONLNd({Ëá˛)uctur◊°dONLNd-{˝á)e contru∂°dONLNd4{áH)
  2085. ols the CRØ˙°dONLNd>{Há…).T RGB display phosphor chr≥¢°dONLNdX{…á˜)Å
  2086. omaticity .°dONLNdbàlî¨(ëlvalues and CRp °dONLNdoà¨î⁄)@    T gamma. .°dONLNdy°l≠,(™l typedef struct characteristics {°dONLNdõØ~ªÆ+XYChroma°dONLNd®Øÿª)Z
  2087. redChroma;°dONLNd¥Ω~…Æ(Δ~XYChroma°dONLNd¡Ωÿ… )Z greenChroma;°dONLNdœÀ~◊Æ(‘~XYChroma°dONLNd‹Àÿ◊)Z blueChroma;°dONLNdÈŸ~¢(‚~double°dONLNdÙŸÿ¸)Zgamma;°dONLNd˚ÁlÛr(l}°dONLNd˝Á~Ûfi)Characteristics;
  2088. *¯4*¯    .°dONLNdl ∏(lField descriptions
  2089. ˇ·ˇ‚7^
  2090. .°dONLNd!l¢*    redChroma.°dONLNd+»)\Red phosphor chr€†°dONLNd;@)O    omaticity^@°dONLNdD@E)). .°dONLNdGl(Æ(%l greenChroma.°dONLNdS»(”)\GrÊ °dONLNdU”( ) een phosphor chr°dONLNde!(J)N    omaticitydONLNdnI(N)(. .°dONLNdq+l7®(4l
  2091. blueChroma.°dONLNd|+»7)\Blue phosphor chr °dONLNdç+7C)R    omaticityü¿°dONLNdñ+B7G)(. .°dONLNdô:lFä(Clgamma.°dONLNdü:»F’)\CRʆ°dONLNd°:’FN)T gamma, color temperatur!†°dONLNd∫:OFà)ze in Kelvins. 
  2092. v*~¯4v*~¯ x*x˛
  2093. ˇ·ˇ‚7^ °dONLNd…h*vf(r*XYChromaˇˇˇˇˇˇ(rÚ4
  2094. .°dONLNd”àlîÄ(ëlThe °dONLNd◊àÄî∞)XYChroma°dONLNdflà∞îæ)0 strl°dONLNd„àæî‘)uctur>`°dONLNdËà‘îÂ)e pr¿°dONLNdÏàÂî%)ovides the CR≤`°dONLNd˘à$î‰)?'T RGB display phosphor and white-point .°dONLNd ïl°z(ûlchr܆°dONLNd#ïz°Í)omaticity x and y values. .°dONLNd>Æl∫(∑ltypedef struct xyChroma { °dONLNdZº~»®+double °dONLNddº¥»Í)6    xChroma; °dONLNdo ~÷®(”~double °dONLNdy ¥÷Í)6    yChroma; °dONLNdÉÿl‰r(·l}°dONLNdÖÿ~‰¥)    XYChroma;
  2095. Ò*¯4Ú*¯    .°dONLNdèÒl¸∏(˘lField descriptions
  2096. ˇ·ˇ‚7^
  2097. .°dONLNd¢˛l
  2098. ñ*xChroma.°dONLNd™˛»
  2099. œ)\VÕ °dONLNd´˛Œ
  2100. )alue for x chrÒİdONLNdπ˛
  2101. 1):    omaticityt °dONLNd¬˛1
  2102. 6)). .°dONLNd≈lñ(lyChroma.°dONLNdÕ»œ)\VÕ °dONLNdŒŒ)alue for y chrX°dONLNd‹    2);    omaticity⁄†°dONLNdÂ16)(. 
  2103. H*Q¯4I*P¯ J*J˛
  2104. ˇ·ˇ‚7^ °dONLNdË;*In(E* RotateAngleˇˇˇˇˇˇ(EÚ4
  2105. .°dONLNdıZlfÄ(clThe °dONLNd˘ZÄf¬) RotateAngle°dONLNdZ¬f–)B strl°dONLNdZ–fÊ)uctur>`°dONLNdZÊf˜)e pr¿°dONLNdZ˜f\)ovides the values for r„ °dONLNd(Z[fß)dotating a QuickT¯ °dONLNd8Z¶fË)Kake 100 image .°dONLNdFglsç(plcounter@°dONLNdMgésæ)" clockwise. .°dONLNdYÄlå(âltypedef enum rotateAngle {°dONLNd}Ä å⁄)¥/* counterclockwise rotation */°dONLNdûé~öÿ(ó~kImgRot0   = 0,°dONLNd∂é ö∞)¢/* 0-degree rotation */ °dONLNd–ú~®ÿ(•~kImgRot90  = 1,°dONLNdËú ®∞)¢/* 90-degree rotation */ˇd@ˇ ˇˇˇˇ@
  2106. ˇ·ˇ‚7^
  2107. 4H\, Palatino&e.3+ä"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@äDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄ä˙(‡ä!Image Processing Module Reference
  2108. , (‡    4-74^H¿,
  2109. Courier.°dONLNd\úhˆ(eúkImgRot180 = 2,°dONLNd\>h‘)¢/* 180-degree rotation */°dONLNd3júv(súkImgRot270 = 3°dONLNdJj>v‘)¢/* 270-degree rotation */°dONLNddxäÑfi(Åä} RotateAngle;
  2110. ëH†4íH†    .°dONLNdsëäú÷*Field descriptions
  2111. ˇ·ˇ‚7^
  2112. .°dONLNdÜûä™∫*KImgRot0.°dONLNdèûÊ™ı)\Zer∫ °dONLNdíûı™)
  2113. o (0) degr‡°dONLNdúû ™?)+ees of roİdONLNd§û?™c)    otation. .°dONLNdÆ≠äπ¿(∂ä    kImgRot90.°dONLNd∏≠Êπ)\90 degr9İdONLNdø≠π&)!ees of rò °dONLNd«≠&πJ)    otation. .°dONLNd—ºä»Δ(≈ä
  2114. kImgRot180.°dONLNd‹ºÊ» )\180 degr9İdONLNd‰º »+)&ees of rò °dONLNdϺ+»O)    otation. .°dONLNdˆÀä◊Δ(‘ä
  2115. kImgRot270.°dONLNdÀÊ◊ )\270 degr9İdONLNd    À ◊+)&ees of rò °dONLNdÀ+◊O)    otation. 
  2116. H4H H
  2117. ˇ·ˇ‚7^ °dONLNd˘Hß(HProgressCallBackˇˇˇˇˇˇ(4
  2118. .°dONLNd-ä$Í(!äProgressCallBack°dONLNd=Í$)`
  2119.  is the prR`°dONLNdG$C)( ototype str>`°dONLNdRC$Y)1uctur¿°dONLNdWY$∫)e of an application pr„ °dONLNdmπ$«)`ogrµÄ°dONLNdp«$ˇ)ess callback .°dONLNd}%ä1¥(.ä
  2120. function. .°dONLNdà>äJP*!typedef struct ProgressCallBack {°dONLNd´LúX\+ IpProgressProcPtr callBackProc; °dONLNdÕZúf∫*long °dONLNdÿZf2)lrefcon;°dONLNd‡hätê(qä}°dONLNd‚hút)ProgressCallBack;
  2121. ÇHë4ÇHê    .°dONLNdÙÅäå÷(âäField descriptions
  2122. ˇ·ˇ‚7^
  2123. .°dONLNdéäö“* callBackProc.°dONLNdéÊö&)\Application prE@°dONLNd"é'ö5)Aogr‡°dONLNd%é6öv)ess callback pr·†°dONLNd4éuöì)?ocedurx‡°dONLNd:éîöõ)e..°dONLNd=ù䩯(¶ärefcon.°dONLNdDùÊ©˝)\Refer⁄ °dONLNdIù˝©=)ence constant. 
  2124. ’H›4’H‹ ◊H◊
  2125. ˇ·ˇ‚7^°dONLNdY≈H’ÿ(—HIPM Functions for Micr˙@°dONLNdo≈ÿ’)êosoft W& °dONLNdv≈’9)0indows '°dONLNd}≈9’à)1 Applicationsˇˇˇˇˇˇ)÷4
  2126. °dONLNdã‹äËfi(ÂäKThe IPM functions described in this section perform operations on the comprp`°dONLNd÷‹fi˯(Âfiessed °dONLNd‹Èäıfi(Úäimage data that is r3¿°dONLNdÈflı)U etrieved fr‡°dONLNd˚ÈıO).om the QuickT0@°dONLNdÈNı)A(ake 100 camera. These functions convert °dONLNd0ˆä¶(ˇäcompr‡°dONLNd5ˆß‚) essed QuickT™`°dONLNdAˆ·˛):?ake 100 images into formats that can be displayed on computers °dONLNdÄäΩ( ä capable of r‘°dONLNdåΩÙ)3 unning MicrŸ†°dONLNdóÙ)7osoft Wã@°dONLNdûA)"    indows. T†°dONLNdßAΩ)+o use these functions, be sur¨‡°dONLNdƒΩ)|e to include the °dONLNd’ä¨(äipm.h fi†°dONLNd›≠T)#(le in the include section of your code. 
  2127. +H94+H8    °dONLNd)ä4ù(1äNote
  2128. ˇ·ˇ‚7^
  2129. .°dONLNd 6äBˇ*All parameter pointers arR`°dONLNd$6ˇB()u
  2130. e of type R`°dONLNd.6(B:))farR`°dONLNd16:Bß) unless otherwise noted. ,Zapf Dingbats.R`°dONLNdK9¨A≤)ru
  2131. PH^4PH]    °dONLNdMNäYù(VäNote
  2132. ˇ·ˇ‚7^
  2133. °dONLNdR[äg*On the Macintosh computerÙ`°dONLNdk[g*){, QuickTÙ‡°dONLNds[*gx)%ake 100 images ar‰¿°dONLNdÑ[xg¡)Ne converted into °dONLNdïgäs≤(pä    display-rS†°dONLNdûg≤s    )(eady PICT format fi« °dONLNd±g    sM)Wles by a QuickTM`°dONLNd¿gMsë)Dake 100 QuickT°dONLNdŒgës§)Dime °dONLNd“sä±(|ädecomprÊ@°dONLNdŸs±«)'essor‘†°dONLNdfis«). Converted QuickT=@°dONLNdsl)Wake 100 images ar- °dONLNdsl±)Ne shown on the °dONLNdäã∫(àäBMacintosh display using the same techniques used to display PICT fi‹@°dONLNdS∫ã»(à∫les °dONLNdWãäó¡(îä with QuickT≤°dONLNdbã¡ó)7ime or QuickDrawÜ¿°dONLNdrãó)R. Ü¿°dONLNduéñ#)
  2134. uˇ@ˇ ˇˇˇˇ@
  2135. ˇ·ˇ‚7^
  2136. 4*\¯, Palatino&e.3+l"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@lDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄*˙¯
  2137. (‡*4-8    )B!Image Processing Module Reference4^*¿¯
  2138. j*r¯4j*r¯ l*l˛
  2139. ˇ·ˇ‚7^ °dONLNd\*ja(f*    IpInitIPMˇˇˇˇˇˇ(fÚ4,
  2140. Courier
  2141. .°dONLNd {lá§(Ñl4OSErr FAR PASCAL IpInitIPM(unsigned char far * ipm);°dONLNd@ìlü~*ipm.°dONLNdDìÆü≈)BAddrC¿°dONLNdHìΔüâ).ess that will contain the IPM private data strß °dONLNdvìâü†)√uctur-°dONLNd{ì°üÃ) es for the °dONLNdÜüÆ´(®Æapplication. This arì`°dONLNdöü´‰)U2ea of memory must be allocated by the application °dONLNdôÆ∑≈(¥Æbefor_†°dONLNd—´≈∑J)!e this function is called. Be sur*‡°dONLNdÚ´K∑ï)Üe this memory ar€Ä°dONLNd´ï∑fl)Jea has been clear°dONLNd´‡∑Ì)Ked .°dONLNd∑Æ√Ù(¿Æprior to calling °dONLNd'∑Ù√*)F    IpInitIPM°dONLNd0∑*√ß)6. The size of this memory arR`°dONLNdL∑ß√–)}    ea is defiR`°dONLNdV∑–√Ô))ned by °dONLNd]√ÆœÁ(ÃÆthe constant °dONLNdj√ÁœA)9kIPMContextSize°dONLNdy√AœF)Z. .°dONLNd|È*Úc(* DESCRIPTION
  2142. .°dONLNdàˆlÄ+BThe °dONLNdåˆÄ∂)    IpInitIPM°dONLNdïˆ∂Ê)6F function initializes the IPM. This function must be called once beforR`°dONLNd€ˆÊÌ(ˇÊe .°dONLNd›l±( lany other IPM rH`°dONLNdÏ≤›)F
  2143. outines ar ¿°dONLNdˆfi{),&e called. During the initialization pr∞`°dONLNd{∞)ù ocess IPM fi√‡°dONLNd(∞ı)5lls in the image °dONLNd9lu(lprG °dONLNd;vø)
  2144. ocessing data struİdONLNdLø÷)Iuctur˚`°dONLNdQ÷◊);es with default settings for the camera matrix and display °dONLNdål)ÿ(&lcharacteristics. However≠ °dONLNd§ÿ))l, the values ar·°dONLNd≥)∫)=*e not actually set prior to a call to the .°dONLNd›*l6(3lIpCalculateColorTables°dONLNdÛ*61)Ñ function. TherR`°dONLNd*16C)Aefor$¿°dONLNd*C6z)e, you must fı@°dONLNd*y6±)6irst call the ı@°dONLNd!*±6Á)8    IpInitIPMı@°dONLNd**Á6È)6 °dONLNd+7lC–(@lfunction and then call °dONLNdB7–CT)dIpCalculateColorTables°dONLNdX7TCm)Ñ beforR`°dONLNd^7mCØ)e any image pr$¿°dONLNdl7ØCÊ)Bocessing can .°dONLNdyDlPù(Ml take place. °dONLNdÜVlbÛ*[If you change the settings for the default camera color matrix and display characteristics °dONLNd·clo>*/during a session with the IPM, those changes ar¿°dONLNdc?o–)”#e not actually put to use until an .°dONLNd3pl|(ylIpCalculateColorTables°dONLNdIp|D)Ñ function is called. .°dONLNd_ó*†D(û*RESULëİdONLNddóD†h)T CODES
  2145. .°dONLNdl§l∞)+(+Upon successful completion, this function rR`°dONLNdó§)∞F)Ωeturns R`°dONLNdû§F∞d)noErrR`°dONLNd£§d∞Â) and the IPM initializes the .°dONLNd¿±lΩfl(∫lnecessary internal data str˛‡°dONLNd€±flΩˆ)sucturÑ¿°dONLNd‡±˜Ω™)*es for use by subsequent function calls fr·°dONLNd
  2146. ±™ΩÀ)≥om the °dONLNdæl ¢(«lapplication. °dONLNd–l‹è*    If an errÖ°dONLNd(–è‹)#or is detected, this function r®@°dONLNdG–‹¢)~#eturns one of the values listed her•İdONLNdj–¢‹©)ïe:.°dONLNdm›lÈ¿(ÊlkIpBadArgError.°dONLNd}›2È¡)Δ Parameter is or contains an addr‰ °dONLNdù›¡ÈÈ)è
  2147. ess of an °dONLNdßË2Ù(Ò2invalid data item..°dONLNd∫ÛlˇÍ(¸lkIpContextExistsError°dONLNd—Û2ˇp)Δ The memory rR`°dONLNd›ÛpˇÇ)>efer$¿°dONLNd·Ûǡº)enced by the $¿°dONLNdÓÛºˇŒ):ipm$¿°dONLNdÒÛŒˇ–) .°dONLNdÚ˛2
  2148. (2parameter has alrÿ°dONLNd˛
  2149. Ì)Meady been allocated by a .°dONLNd    2<(2prR`°dONLNd    <z)
  2150. evious call to R`°dONLNd-    z∞)>    IpInitIPMR`°dONLNd6    ∞µ)6. °dONLNd9l Ã(lkIpNoMemoryError.°dONLNdK2 Ê)Δ'System failed to allocate system memory¶Ä°dONLNdr Í)≥. °dONLNdu9*BQ(@*SEE ALSO
  2151. .°dONLNd~FlRú+BIpEndIPM°dONLNdÜFúRÊ)0, described next; °dONLNdòFÊRj)JIpCalculateColorTables°dONLNdÆFjRx)Ñ on °dONLNd≤FxRê)page °dONLNd∑FêRû)4-9ˇx@ˇ ˇˇˇˇ@
  2152. ˇ·ˇ‚7^
  2153. 4H\, Palatino&e.3+ä"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@äDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄ä˙(‡ä!Image Processing Module Reference
  2154. , (‡    4-94^H¿
  2155. jHr4jHr lHl
  2156. ˇ·ˇ‚7^ °dONLNd\HjÅ(fHIpEndIPMˇˇˇˇˇˇ(f4,
  2157. Courier
  2158. .°dONLNd
  2159. {äáº(Ñä3OSErr FAR PASCAL IpEndIPM(unsigned char far * ipm);°dONLNd>ìäüú*ipm.°dONLNdBìÃü„)BAddrC¿°dONLNdFì‰üæ)3ess of the private storage for the IPM. See the defió°dONLNdzìæüˆ)⁄nition of the .°dONLNdàüô(®Ã    IpInitIPM°dONLNdëü´6)6 function on °dONLNdûü6´N)4page °dONLNd£üN´\)4-8°dONLNd¶ü\´~) for morR`°dONLNdÆü~´Í)"e information about the R`°dONLNdΔüÍ´¸)lipmR`°dONLNd…ü¸´˛) .°dONLNd ´Ã∑˘(¥Ã    parameterS†°dONLNd”´˘∑˛)-. °dONLNd÷—H⁄Å(ÿH DESCRIPTION
  2160. .°dONLNd‚fiäÍû+BThe °dONLNdÊfiûÍŒ)IpEndIPM°dONLNdÓfiŒÍ    )0E function closes the IPM and deallocates associated memory allocated °dONLNd3Î䘵(Ùä    with the °dONLNd<ε˜Î)+    IpInitIPM°dONLNdEÎΘ*)6 function. The °dONLNdTÎ*˜Z)?IpEndIPM°dONLNd\ÎZ˜    )0' function should always be called beforR`°dONLNdÉΠ   ˜)Øe .°dONLNdÖ¯ä((ä%exiting the IPM. The application is r}†°dONLNd™¯()û3esponsible for disposing of any application memory °dONLNd›ä(äassociated with using the IPM.°dONLNd¸,H5b(3HRESULëİdONLNd,b5Ü)T CODES
  2161. .°dONLNd    9äEÀ+(This function rR`°dONLNd9ÀE)Aeturns the value R`°dONLNd)9E4)KnoErrR`°dONLNd.94EØ) upon successful completion..°dONLNdKKäW≠(Tä    If an errÖ°dONLNdTK≠W+)#or is detected, this function r®@°dONLNdsK+Wü)~eturns one of these values:.°dONLNdèXädfi(aäkIpBadArgError.°dONLNdüXPdfl)Δ Parameter is or contains an addr‰ °dONLNdøXfld)è
  2162. ess of an °dONLNd…cPoù(lPinvalid data item..°dONLNd‹näz(wäkIpNoContextExistsError.°dONLNdınPzÙ)Δ%This function was called without a pr9`°dONLNdnız)•evious .°dONLNd!yPÖo(ÇPcall to °dONLNd)yoÖ•)    IpInitIPM°dONLNd2y•Ö™)6. .°dONLNd5ûHßo(•HSEE ALSO
  2163. .°dONLNd>´ä∑¿+B    IpInitIPM°dONLNdG´¿∑Œ)6 on °dONLNdK´Œ∑Ê)page °dONLNdP´Ê∑Ù)4-8
  2164. ËH4ËH ÍHÍ
  2165. ˇ·ˇ‚7^ .°dONLNdT⁄HË≠(‰HIpCalculateColorT"İdONLNde⁄≠Ë…)eablesˇˇˇˇˇˇ(‰4
  2166. .°dONLNdl˙ä(äAOSErr FAR PASCAL IpCalculateColorTables(unsigned char far * ipm);°dONLNdÆäú*ipm.°dONLNd≤Ãë)B,Pointer to the memory allocated for the IPM.°dONLNdfl7H@Å(>H DESCRIPTION
  2167. ˇˇìJ.°dONLNdÎEäQù+BThe ˇ˛πfiJ°dONLNdÔEûQ")IpCalculateColorTablesˇˇìJJ°dONLNdE"QÒ)Ñ1 function calculates and initializes the color prÏ∞°dONLNd6EQ)Œ    ocessing .°dONLNd?Rä^fl([ätables with the currİdONLNdSR‡^)VFent camera color matrix and display characteristics. The camera color ˇˇË†.°dONLNdô_äk3(hä%matrix and display characteristics arÙ‡°dONLNdæ_3kW)©e modifi›Ä°dONLNdΔ_Xkè)% ed with the ˇˇπ‡ó`°dONLNd“_êk)8IpSetCameraColorMatrixˇˇË†ó`°dONLNdË_k)Ñ °dONLNdÈläxù(uäand °dONLNdÌlùx?)IpSetDisplayCharacteristics°dONLNdl?xn)¢  functions. ˇˇ˛°dONLNd~ääë(áäYï°dONLNd~êäÿ)ou must call the ˇˇ˙BçX°dONLNd'~Ÿä])IIpCalculateColorTablesˇˇ˛çX°dONLNd=~]ä)Ñ* function after initializing the IPM with °dONLNdgãäó¿(îä    IpInitIPM°dONLNdpã¿óŸ)6 beforR`°dONLNdvãŸó*)e attempting to pr$¿°dONLNdàã*óc)Q ocess QuickT9¿°dONLNdîãbó©)8ake 100 images.9¿°dONLNd£ã©ó´)G °dONLNd•ùä©ë(¶äYï°dONLNd¶ùê©¡) ou can call ï°dONLNd≤ù¡©c)1IpSetDisplayCharacteristicsï°dONLNdÕùc©x)¢ and ï°dONLNd“ùx©¸)IpSetCameraColorMatrixï°dONLNdËù¸©˛)Ñ °dONLNdÈ™ä∂(≥äfollowed by a single call to °dONLNd™∂ä)|IpCalculateColorTables°dONLNd™ä∂)Ñ to calculate the new color ˇ∂@ˇ ˇˇˇˇ@
  2168. ˇ·ˇ‚7^
  2169. 4*\¯, Palatino&e.3+l"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@lDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄*˙¯
  2170. (‡*4-10    )B!Image Processing Module Reference4^*¿¯
  2171. °dONLNd\lh◊(elWtables. In addition, if you only need to calculate the color tables after changing the °dONLNdWiluÊ*Xcamera color matrix or calculate the display characteristics after changing the display .°dONLNdØvlÇ*'characteristics, you can follow either ,
  2172. Courier°dONLNd÷vÇπ)´IpSetDisplayCharacteristics°dONLNdÒvπÇΔ)¢ or °dONLNdıÉlè(ålIpSetCameraColorMatrix°dONLNd Éè2)Ñ with a call to °dONLNdÉ2è∂)BIpCalculateColorTables°dONLNd1É∂èÒ)Ñ. This is also °dONLNd@êlút(ôltrl°dONLNdBêtú°) ue for the l°dONLNdMê°úI)-IpInitDisplayCharacteristicsl°dONLNdiêIú^)® and l°dONLNdnê^úË)IpInitCameraColorMatrixl°dONLNdÖêËúÍ)ä .°dONLNdÜùl©ö(¶l functions. °dONLNdí√*ÃD( *RESULëİdONLNdó√DÃh)T CODES
  2173. .°dONLNdü—l›≠+(This function rR`°dONLNdÆ—≠› )Aeturns R`°dONLNdµ— ›Ë)noErrR`°dONLNd∫—Ë›c) upon successful completion.ˇˇÀh°dONLNd◊„lÔè(Ïl    If an errÈ0°dONLNd‡„èÔœ)#or is detected, ˇˇb8Kh°dONLNd„–ÔT)AIpCalculateColorTablesˇˇÀhKh°dONLNd„TÔY)Ñ rÈ0°dONLNd„YÔÔ)#eturns one of the values listed her°dONLNd+„Ô¯)óe:°dONLNd.l¸¿(˘lkIpBadArgError.°dONLNd>2¸¡)Δ Parameter is or contains an addr‰ °dONLNd^¡¸È)è
  2174. ess of an °dONLNdh˚2(2invalid data item..°dONLNd{lˆ(lkIpNoContextExistsError°dONLNdî2F)ΔThe °dONLNdòFX)ipm°dONLNdõXÛ)# parameter does not point to valid .°dONLNdæ2G(2data.°dONLNdƒ5*>Q(<*SEE ALSO
  2175. .°dONLNdÕClO¢+B    IpInitIPM°dONLNd÷C¢O∞)6 on °dONLNd⁄C∞O»)page °dONLNdflC»O÷)4-8°dONLNd‚C÷O€), °dONLNd‰C€O})IpSetDisplayCharacteristics°dONLNdˇC}Oã)¢ on °dONLNdCãO£)page °dONLNdC£O∂)4-14°dONLNd C∂OΩ),  °dONLNdPl\(YlIpInitDisplayCharacteristics°dONLNd+P\")® on °dONLNd/P"\:)page °dONLNd4P:\M)4-15°dONLNd8PM\R), °dONLNd:PR\÷)IpSetCameraColorMatrix°dONLNdPP÷\‰)Ñ on °dONLNdT]liÑ(flpage °dONLNdY]Ñió)4-17°dONLNd]]óiú), °dONLNd_]úi&)IpInitCameraColorMatrix°dONLNdv]&i7)ä, on °dONLNd{]7iO)page °dONLNdÄ]Oib)4-17°dONLNdÑ]bid) 
  2176. ô*¢¯4ö*°¯ õ*õ˛
  2177. ˇ·ˇ‚7^ .°dONLNdÜå*öß(ñ*IpConvertThumbnailT$¿°dONLNdôåßö»)}oRGBˇˇˇˇˇˇ(ñÚ4
  2178. .°dONLNdü´l∑Ú(¥lAOSErr FAR PASCAL IpConvertThumbnailToRGB(unsigned char far * ipm,°dONLNdËπÍ≈∞+~!unsigned char far * pCompedTNail,°dONLNd«Í”û*unsigned char far * pTNailRGB,°dONLNd7’Í·û*ImageAttribute far * imgAttr);°dONLNdVÌl˘~(ˆlipm.°dONLNdZÌÆ˘s)B,Pointer to the memory allocated for the IPM..°dONLNdá˝l    ¥(l pCompedTNail.°dONLNdî    Æ+B Pointer to the comprM†°dONLNd®        q)[essed thumbnail image..°dONLNdøl%¢("l    pTNailRGB.°dONLNd…Æ%A)B Pointer to the output RGB image..°dONLNdÍ)l5ñ(2limgAttr°dONLNdÚ)Æ5Ó)BPointer to the °dONLNd)Ó5B)@ImageAttribute°dONLNd)B5h)T     data strl°dONLNd)h5~)&uctur>`°dONLNd)~5˜)e that describes the image °dONLNd85ÆA≤(>ÆrR`°dONLNd95≤Aƒ)efer$¿°dONLNd=5ƒAÍ)    enced in $¿°dONLNdF5ÍA2)& pCompedTNail$¿°dONLNdR52AÑ)H. Banded image pr˜ °dONLNdc5ÉAÌ)Qocessing does not apply °dONLNd{AÆM+(JÆto thumbnail images. Be surR`°dONLNdñA+M^)}e to set the R`°dONLNd£A^M¨)3aStartingLineR`°dONLNd∞A¨M¡)N and °dONLNdµMÆY¸(VÆaLinesPerBand°dONLNd¬M¸Y)N fPİdONLNdƒMY8)ields in the PİdONLNd—M8Yå)6ImageAttributePİdONLNdflMåYö)T str<İdONLNd„MöY∞)uctur‡°dONLNdËM∞Y¬)e to ‡°dONLNdÌM¬Y»)0‡°dONLNdÓM»YÂ) when .°dONLNdÙYÆe∑(bÆprG °dONLNdˆY∏e4)
  2179. ocessing thumbnail images. °dONLNd*àc(Ü* DESCRIPTION
  2180. .°dONLNdålòÄ+BThe °dONLNd"åÄò
  2181. )IpConvertThumbnailToRGB°dONLNd9å
  2182. òX)ä function decomprR`°dONLNdJåXò€)Nesses a thumbnail image and ˇˇã4°dONLNdfôl•v(¢lprR`°dONLNdhôv•ã)
  2183. epar$¿°dONLNdlô㕸)es it for display as specifi‹ƒ°dONLNdàô¸•&)q
  2184. ed by the ˇ˛°ú~`°dONLNdíô'•{)+ImageAttributeˇˇã4~`°dONLNd†ô{•†)T     data strÄ»°dONLNd©ô†•∂)%ucturS(°dONLNdÆô∂•¯)e pointed to by °dONLNdæ¶l≤~(Ølthe °dONLNd¬¶~≤®)imgAttr°dONLNd…¶®≤⁄)*
  2185.  parameter¬†°dONLNd”¶Ÿ≤‹)1.ˇ\@ˇ ˇˇˇˇ@
  2186. ˇ·ˇ‚7^
  2187. 4H\, Palatino&e.3+ä"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@äDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄ä˙(‡ä!Image Processing Module Reference
  2188. äÄ(‡4-1)14^H¿°dONLNd\Heb(cHRESULëİdONLNd\beÜ)T CODES
  2189. .°dONLNdjävÀ+(This function rR`°dONLNdjÀvË)Aeturns ,
  2190. CourierR`°dONLNd#jËv)noErrR`°dONLNd(jvÅ) upon successful completion..°dONLNdE|äà≠(Öä    If an errÖ°dONLNdN|≠à+)#or is detected, this function r®@°dONLNdm|+à¿)~#eturns one of the values listed her•İdONLNdê|¿à«)ïe:.°dONLNdìâäïfi(íäkIpBadArgError.°dONLNd£âPïfl)Δ Parameter is or contains an addr‰ °dONLNd√âflï)è
  2191. ess of an °dONLNdÕîP†ù(ùPinvalid data item..°dONLNd‡üä´,(®äkIpColorTablesNotCalculated.°dONLNd˝üP´∞)ΔColor parameters wer†°dONLNdü±´Û)ae initialized or °dONLNd"™P∂(≥P(changed without calculating the derived °dONLNdJµP¡r* color pr˝`°dONLNdRµr¡∏)"ocessing tables. {°dONLNdcµπ¡ø)GY;İdONLNddµø¡˜)ou must call .°dONLNdq¿PÑ(…PIpCalculateColorTables°dONLNdá¿‘ÃÌ)Ñ beforR`°dONLNdç¿ÌÃ)e image .°dONLNdïÀP◊Y(‘PprG °dONLNdóÀZ◊¬)
  2192. ocessing can take place..°dONLNd∞÷ä‚(fläkIpNoContextExistsError°dONLNd…÷P‚b)ΔThe°dONLNdÃ÷b‚d) °dONLNdÕ÷d‚v)ipm°dONLNd–÷v‚)# parameter does not point to valid .°dONLNdÛ·PÌe(ÍPdata..°dONLNd˘Ïä¯Í(ıäkIpNoMemoryError.°dONLNd ÏP¯‚)Δ System failed to allocate memory=`°dONLNd+Ï‚¯Á)í. °dONLNd.Ho(HSEE ALSO
  2193. .°dONLNd7ä*¿+B    IpInitIPM°dONLNd@¿*Œ)6 on °dONLNdDŒ*Ê)page °dONLNdIÊ*Ù)4-8°dONLNdLÙ*˘), °dONLNdN˘*})IpCalculateColorTables°dONLNdd}*ã)Ñ on °dONLNdhã*£)page °dONLNdm£*±)4-9
  2194. ZHc4[Hb \H\
  2195. ˇ·ˇ‚7^ .°dONLNdqMH[‘(WHIpConvertADPCMtoRGBˇˇˇˇˇˇ(W4
  2196. .°dONLNdÜläx¯(uä=OSErr FAR PASCAL IpConvertADPCMtoRGB(unsigned char far * ipm,°dONLNdÀzÜ»+~ unsigned char huge * pCompedCDI,°dONLNdÛàî™*unsigned char huge * pRGB, °dONLNdñ¢∂*ImageAttribute far * imgAttr,°dONLNd;§∞Ê*%ProgressCallBack far * callBackProc);°dONLNdaºä»ú(≈äipm.°dONLNdeºÃ»î)B-Pointer to the memory allocated for the IPM. .°dONLNdìÃäÿΔ(’ä
  2197. pCompedCDI.°dONLNdûÿÉ++B Pointer to the QuickTÕ@°dONLNd≥ÿ*‰j)^ake 100 compr¶‡°dONLNd¿ÿj‰©)@essed color dif0İdONLNdœÿ™‰∂)@fer°dONLNd“ÿ∂‰È) ence image..°dONLNdfiËäÙ¢(ÒäpRGB.°dONLNd„ËÃÙ_)B Pointer to the RGB image output..°dONLNd¯ä¥(äimgAttr°dONLNd ¯Ã )BPointer to the °dONLNd¯ `)@ImageAttribute°dONLNd)¯`n)T strl°dONLNd-¯nÑ)uctur>`°dONLNd2¯Ñ )e that describes the input and °dONLNdQÃ(Ãoutput images rR`°dONLNd`#)Eefer$¿°dONLNdd#K)    enced by $¿°dONLNdmKá)(
  2198. pCompedCDI$¿°dONLNdwáú)< and $¿°dONLNd|ú¥)pRGB$¿°dONLNdÄ¥Ω), r˜ °dONLNdɺÒ) espectively€`°dONLNdé)4. When .°dONLNdïÜ(ÃrE°dONLNdñ–Q)otating images 90 or 270 degr˚‡°dONLNd≥Qœ)Åees without using banded pråİdONLNdŒ–
  2199. )ocessing, the .°dONLNd‹Ã((%ÃaLinesPerBand°dONLNdÈ( )N fPİdONLNdΠ(R) ield in the PİdONLNd˜R(¶)2ImageAttributePİdONLNd¶(¥)T str<İdONLNd    ¥( )uctur‡°dONLNd ()e must be set to .°dONLNd(Ã4‡(1Ãthe r¢`°dONLNd$(‡4ñ)*otated image height (either 640 for high-rÇ`°dONLNdN(ñ4)∂esolution images or 320 for °dONLNdj4Ã@Ì(=Ãstandar±Ä°dONLNdq4Ì@˙)!d-rÊ °dONLNdt4˙@¥)'esolution images). When doing banded pr— °dONLNdõ4¥@)∫ocessing at 90 or 270 °dONLNd±@ÃL‡(IÃdegrπİdONLNdµ@‡L) ees, be surd °dONLNd¿@Lc).e to continue the pr °dONLNd‘@dLä)V    ocess thrê@°dONLNd›@äL…)&ough the full rªÄ°dONLNdÏ@…L)?otated image °dONLNd˘LÃXÌ(UÃheight. .°dONLNd\äh“(eä callBackProc.°dONLNdhÃt„+B AddrC¿°dONLNdh‰t6)ess of a callback prfl‡°dONLNd'h6tT)Rocedurw °dONLNd-hUtk)e to rΩ†°dONLNd3hktí)    eceive pr`İdONLNd<hìt°)(ogr* °dONLNd?h¢tŒ) ess status.°dONLNdKéHóÅ(ïH DESCRIPTION
  2200. .°dONLNdWõäßû+BThe °dONLNd[õûß)IpConvertADPCMtoRGB°dONLNdnõß^)r function decomprR`°dONLNdõ^ßÉ)N    esses an Ù°dONLNdàõÇßÀ)$ ADPCM QuickT    °dONLNdîõÀß)Iake 100 image °dONLNd¢®ä¥˚(±äand converts it, as specifi°dONLNdΩ®˚¥')q
  2201. ed by the °dONLNd«®'¥{),ImageAttribute°dONLNd’®{¥â)T strl°dONLNdŸ®â¥ü)uctur>`°dONLNdfi®ü¥Ë)e, to a display-r¿°dONLNdԮ˥)Ieady ˇΔ@ˇ ˇˇˇˇ@
  2202. ˇ·ˇ‚7^
  2203. 4*\¯, Palatino&e.3+l"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@lDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄*˙¯
  2204. (‡*4-12    )B!Image Processing Module Reference4^*¿¯
  2205. .°dONLNd\lhı(elformat. The image is color corrR`°dONLNd\ıh`)âected for display (color ,
  2206. CourierR`°dONLNd8\`h®)k IpPixelTypesR`°dONLNdD\®h€)H  only). The °dONLNdPilup(rlrR`°dONLNdQipuœ)esulting image is stor$¿°dONLNdgiœu)_ed at the addr˜ °dONLNduiu<)@
  2207. ess specifi˜ °dONLNdÄi<uf)-
  2208. ed in the ˜ °dONLNdäifu~)*pRGB˜ °dONLNdéi~u∞)
  2209.  parameter9¿°dONLNdòi∞uµ)2. .°dONLNdõè*òD(ñ*RESULëİdONLNd†èDòh)T CODES
  2210. .°dONLNd®ùl©≠+(This function rR`°dONLNd∑ù≠© )Aeturns R`°dONLNdæù ©Ë)noErrR`°dONLNd√ùË©c) upon successful completion..°dONLNd‡Ølªè(∏l    If an errÖ°dONLNdÈØèª)#or is detected, this function r®@°dONLNdت¢)~#eturns one of the values listed her•İdONLNd+Ø¢ª©)ïe:.°dONLNd.ºl»¥(≈l kIpAppCancel.°dONLNd<º2»—)Δ#Operation has been canceled by the °dONLNd_«2”f* application..°dONLNdl“lfi¿(€lkIpBadArgError.°dONLNd|“2fi¡)Δ Parameter is or contains an addr‰ °dONLNdú“¡fiÈ)è
  2211. ess of an °dONLNd¶›2È(Ê2invalid data item..°dONLNdπËlÙ(ÒlkIpColorTablesNotCalculated.°dONLNd÷Ë2Ùí)ΔColor parameters wer†°dONLNdÍËìÙ’)ae initialized or °dONLNd˚Û2ˇÁ(¸2(changed without calculating the derived °dONLNd#˛2
  2212. T* color pr˝`°dONLNd+˛T
  2213. ö)"ocessing tables. {°dONLNd<˛õ
  2214. °)GY;İdONLNd=˛°
  2215. Ÿ)ou must call .°dONLNdJ    2∂(2IpCalculateColorTables°dONLNd`    ∂œ)Ñ beforR`°dONLNdf    œÙ)e image .°dONLNdn2 ;(2prG °dONLNdp< §)
  2216. ocessing can take place..°dONLNdâl+ˆ((lkIpNoContextExistsError°dONLNd¢2+F)ΔThe °dONLNd¶F+X)ipm°dONLNd©X+Û)# parameter does not point to valid .°dONLNdÃ*26G(32data..°dONLNd“5lAÃ(>lkIpNoMemoryError.°dONLNd‰52Aƒ)Δ System failed to allocate memory=`°dONLNd5ƒA…)í. °dONLNdY*bQ(`*SEE ALSO
  2217. .°dONLNdgls¿+BIpProgressProc°dONLNdg¿s)T, described next
  2218. £*¨¯4§*´¯ •*•˛
  2219. ˇ·ˇ‚7^ .°dONLNd/ñ*§|(†*IpProgressProcˇˇˇˇˇˇ(†Ú4
  2220. .°dONLNd?µl¡⁄(æl=typedef OSErr (FAR PASCAL *IpProgressProcPtr) (short message,°dONLNdá√ œ§+¥short percentComplete,°dONLNd®— ›t*long refcon); °dONLNd∂—t›z)T °dONLNd∏Èlıñ(Úlmessage°dONLNd¿ÈÆı)BIndicates the rR`°dONLNdœÈıK)Beason for the call. Vg`°dONLNd‰ÈJıï)Zalid messages ar9¿°dONLNdÙÈïıú)Ke 9¿°dONLNdˆÈúı)IpProgressInit9¿°dONLNdÈıı)T, °dONLNdıÆ(˛ÆIpProgressUpdate°dONLNdı&)`, and °dONLNdı&t)IpProgressEnd°dONLNd)ıtç)N. The °dONLNd/ıç·)IpProgressInit°dONLNd=ı·ˆ)T and °dONLNdBƸ(
  2221. ÆIpProgressEnd°dONLNdO¸t)N messages may be used to crR`°dONLNdjt”)xeate and dismiss the .°dONLNdÆÛ(Æapplication’s prÇ@°dONLNdèÛ)EogrK‡°dONLNdí\)ess indicator display °dONLNdß\^)Z..°dONLNd©l)Δ(&lpercentComplete°dONLNdπ)Æ5 +B For messages of type °dONLNdŒ) 5l)^IpProgressUpdate°dONLNdfi)l5Ç)` onlyd@°dONLNd„)Å5≈), should be the .°dONLNdÛ5ÆAº(>Æper¿°dONLNdˆ5ΩAR)"centage of completion for the curr®`°dONLNd5RAÌ)ï#ently executing IPM function. This °dONLNd;AÆMU(JÆ&value is an integer between 0 and 100..°dONLNdbQl]ê(Zlrefcon.°dONLNdiQÆ]≈)BRefer⁄ °dONLNdnQ≈])ence constant specifig`°dONLNdÉQ ]ñ)[ed by the application and r)‡°dONLNdûQó]Û)weturned to the given °dONLNd≥]Æifi(fÆ callback prè °dONLNdæ]fii¸)0ocedur&`°dONLNdƒ]˝i)e. °dONLNd»É*åc(ä* DESCRIPTION
  2222. ˇˇ‚
  2223. .°dONLNd‘êlú+BThe ˇˇ¶b
  2224. °dONLNdÿêÄú‘)IpProgressProcˇˇ‚
  2225. b
  2226. °dONLNdÊê‘ú)T  callback pr¯~°dONLNdÚêú%)4ocedur fi°dONLNd¯ê%ú5)e prH°dONLNd¸ê6úd)
  2227. ototype pr3≤°dONLNdêeú¯)/!ovides a way for applications to .°dONLNd'ùl©.(¶l,monitor the time it takes to convert a comprk °dONLNdSù.©i)¬ essed QuickT†°dONLNd_ùi©≈);ake 100 image into a °dONLNdt™l∂î(≥l    display-rS†°dONLNd}™î∂û)(9eady RGB format. When an application-supplied callback pr€Ä°dONLNd∂™û∂º(≥ûocedurr¿°dONLNdº™Ω∂Ó) e is passed ˇ,@ˇ ˇˇˇˇ@
  2228. ˇ·ˇ‚7^
  2229. 4H\, Palatino&e.3+ä"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@äDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄ä˙(‡ä!Image Processing Module Reference
  2230. , (‡4-134^H¿.°dONLNd\ähß(eäto the ,
  2231. Courier°dONLNd\ßh)IpConvertADPCMtoRGB°dONLNd\hé)r function, that callback prR`°dONLNd5\éh´)uocedur$¿°dONLNd;\´hÛ)e will be called .°dONLNdLiäu(räperiodically as the image is pr İdONLNdkiuH)Öocessed to prö@°dONLNdxiHut)9
  2232. ovide a prJ‡°dONLNdÇiuuÉ)-ogrİdONLNdÖiÑu)"ess indicator to the application. °dONLNdßväÇ(äThe application may choose to fiÕ†°dONLNd«vÇØ)è%lter the callback status to the desirƒ‡°dONLNdÏvØÇÎ)ñed level and rʆ°dONLNd˙vÎÇ)<eturn °dONLNdÉäèπ(åä
  2233. without prŸ@°dONLNd
  2234. Éπè2)/oviding any user feedback. °dONLNd&©H≤b(∞HRESULëİdONLNd+©b≤Ü)T CODES
  2235. .°dONLNd3∑ä√À+(This function rR`°dONLNdB∑À√Ë)Aeturns R`°dONLNdI∑Ë√)noErrR`°dONLNdN∑√k) as long as the asynchr$¿°dONLNde∑k√)e%onous operation is successful. If an .°dONLNdäƒä–ñ(Õäerr@°dONLNdçƒó–s)4or is detected during the operation, this function rÖ¿°dONLNd¡ƒs–)‹#eturns one of the values listed herɰdONLNd‰ƒ–)ïe:.°dONLNdÁ—ä›fi(⁄äkIpBadArgError.°dONLNd˜—P›õ)ΔThe application r∑†°dONLNd—õ›Ó)Keceived an invalid °dONLNd‹PË}(ÂP    parameterS†°dONLNd$‹}Ë)-..°dONLNd&ÁäÛ¿(ä    kIpCancel.°dONLNd1ÁPÛ¯)Δ&The application wants to cancel the prZ†°dONLNdWÁ¯Û)®ocess. °dONLNd^ÚP˛Ÿ(˚PThe IPM will discontinue its prù@°dONLNd}ÚŸ˛)â
  2236. ocess and .°dONLNdá˝P    T(PrR`°dONLNdà˝T    õ)eturn the value R`°dONLNdò˝õ    „)G kIpAppCancelR`°dONLNd§˝„    Ë)H. .°dONLNdß!H*o((HSEE ALSO
  2237. .°dONLNd∞/ä;¸+BIpConvertADPCMtoRGB°dONLNd√/¸;
  2238. )r on °dONLNd«/
  2239. ;")page °dONLNdÃ/";0)4-1Û`°dONLNdœ//;4)1
  2240. kHt4lHs mHm
  2241. ˇ·ˇ‚7^ .°dONLNd—^Hl„(hHIpGetDisplayCharacteristicsˇˇˇˇˇˇ(h4
  2242. .°dONLNdÓ}äâ8(ÜäOSErr FAR PASCAL IpGetDisplay°dONLNd }8âí)ÆCharacteristics°dONLNd#ãó∞(î(unsigned char far * ipm,°dONLNdEô•*'Characteristics far * characteristics);°dONLNdm±äΩú(∫äipm.°dONLNdq±ÃΩî)B-Pointer to the memory allocated for the IPM. .°dONLNdü¡äÕ‰( ächaracteristics°dONLNdØÕß +B Pointer to the °dONLNdæÕ Ÿf)@Characteristics°dONLNdÕÕfŸt)Z strl°dONLNd—ÕtŸä)uctur>`°dONLNd÷ÕäŸ√)e for the curr¿°dONLNd‰Õ√Ÿ˜)9 ent displayı°dONLNdÔÕıŸ )2. For .°dONLNdıŸÃÂR(‚Ãinformation about the values r¿¿°dONLNdŸR‚)Ü"eturned by this function, see the .°dONLNd5ÂÃÒ(ÓÃdescription of the °dONLNdHÂÒx)RCharacteristics°dONLNdWÂxÒû)Z     data strl°dONLNd`ÂûÒ¥)&uctur>`°dONLNdeÂ¥Ò«)e on >`°dONLNdj«Òfl)page >`°dONLNdoÂflÒÌ)4-6>`°dONLNdrÂÌÒÚ). .°dONLNdu HÅ(H DESCRIPTION
  2243. .°dONLNdÅä$û+BThe °dONLNdÖû$@)IpGetDisplayCharacteristics°dONLNd†@$l)¢  function rR`°dONLNd´l$¨),eturns the curr$¿°dONLNd∫¨$ )@ent CRΔ`°dONLNd¿…$˜)
  2244. T display °dONLNd %ä1˜(.ächaracteristics in the arR`°dONLNd„%˜1S)mea pointed to by the R`°dONLNd¯%S1≠)\characteristicsR`°dONLNd%≠1fl)Z
  2245.  parameterï°dONLNd%fi1„)1. .°dONLNdLHUb(SHRESULëİdONLNdLbUÜ)T CODES
  2246. .°dONLNd!YäeÀ+(This function rR`°dONLNd0YÀeË)Aeturns R`°dONLNd7YËe)noErrR`°dONLNd<YeÅ) upon successful completion..°dONLNdYkäw≠(tä    If an errÖ°dONLNdbk≠w+)#or is detected, this function r®@°dONLNdÅk+wü)~eturns one of these values:.°dONLNdùxäÑfi(ÅäkIpBadArgError.°dONLNd≠xPÑõ)ΔThe application r∑†°dONLNdæxõÑÓ)Keceived an invalid °dONLNd—ÉPè}(åP    parameterS†°dONLNd⁄É}è)-..°dONLNd‹éäö(óäkIpNoContextExistsError°dONLNdıéPöd)ΔThe °dONLNd˘édöv)ipm°dONLNd¸évö)# parameter does not point to valid .°dONLNdôP•e(¢Pdata.ˇt@ˇ ˇˇˇˇ@
  2247. ˇ·ˇ‚7^
  2248. 4*\¯, Palatino&e.3+l"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@lDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄*˙¯
  2249. (‡*4-14    )B!Image Processing Module Reference4^*¿¯°dONLNd\*eQ(c*SEE ALSO,
  2250. Courier
  2251. .°dONLNd    jlv+BIpSetDisplayCharacteristics°dONLNd$jvX)¢, described next; °dONLNd6wlÉ(ÄlIpInitDisplayCharacteristics°dONLNdRwÉ")® on °dONLNdVw"É:)page °dONLNd[w:ÉM)4-15
  2252. ≥*º¯4¥*ª¯ µ*µ˛
  2253. ˇ·ˇ‚7^ .°dONLNd`¶*¥√(∞*IpSetDisplayCharacteristicsˇˇˇˇˇˇ(∞Ú4
  2254. .°dONLNd}≈l—(ŒlOSErr FAR PASCAL IpSetDisplay°dONLNdö≈—t)ÆCharacteristics°dONLNd≤”¸flí(‹¸(unsigned char far * ipm,°dONLNd‘·¸ÌÊ*'Characteristics far * characteristics);°dONLNd¸˘l~(lipm.°dONLNd˘Æs)B,Pointer to the memory allocated for the IPM..°dONLNd-    lΔ(lcharacteristics.°dONLNd=Æ!q+B .Pointer to the new display characteristics str¯°dONLNdkq!à)√uctur}‡°dONLNdpâ!í)e. È °dONLNdsí!ı)    All supported display °dONLNdâ!Æ-õ(*Æ8characteristics must be set when calling this function. ¸@°dONLNd¡!õ-°)ÌYº¿°dONLNd¬!°-”) ou should rçİdONLNdÕ!‘-Ù)3etrieve °dONLNd’-Æ9(6Æthe characteristics fi
  2255. †°dONLNdÎ-9∏)X(rst, then modify them as necessary beforz†°dONLNd-∏9„)≤
  2256. e passing °dONLNd9ÆE(BÆthem to this function. °dONLNd6IÆU2*This function supports the CR†°dONLNdSI3UI)ÖT chr¡°dONLNdXIIUˆ)'omaticities and gamma characteristics. °dONLNdUÆaÍ(^ÆIFor information about the values you can set with this function, see the .°dONLNd»aÆm* description of the °dONLNd€amZ)RCharacteristics°dONLNdÍaZmh)Z strl°dONLNdÓahm~)uctur>`°dONLNdÛa~më)e on >`°dONLNd¯aëm©)page >`°dONLNd˝a©m∑)4-6>`°dONLNda∑mº). .°dONLNdá*êc(é* DESCRIPTION
  2257. °dONLNdîl†B+B2This function sets the values for a new color corrß °dONLNdAîB†”)÷ ection matrix using the given CRv`°dONLNda€)ëT °dONLNdc°l≠j(™l=display characteristics. It is used to customize the color prO‡°dONLNd†°k≠Δ)ˇocessing of a QuickT °dONLNd¥°Δ≠È)[ake 100 °dONLNdºÆl∫‹(∑limage for accurate color r2†°dONLNd÷Æ›∫Î)qepr√`°dONLNdŸÆÎ∫/)oduction on difƇ°dONLNdËÆ/∫;)Dferë`°dONLNdÎÆ;∫}) ent display harø‡°dONLNd˙Æ}∫î)Bdwar˜†°dONLNd˛Æî∫ù)e. ˇˇUT.°dONLNd¿lÃß(…lAfter calling ˇ˝ˇ¸*®°dONLNd¿®ÃJ)<IpSetDisplayCharacteristicsˇˇUT*®°dONLNd+¿JÃr)¢ , call the ˇ˝ˇ¸*§°dONLNd6¿sØ))IpCalculateColorTablesˇˇUT*§°dONLNdL¿˜Ã¯)Ñ .°dONLNdMÕlŸ(÷lZfunction to calculate and initialize the new display characteristics for subsequent image .°dONLNdß⁄lÊv*prR`°dONLNd©⁄vÊ≥)
  2258. ocessing. The R`°dONLNd∑⁄≥Ê7)=IpCalculateColorTablesR`°dONLNdÕ⁄7Ê¢)Ñ function is described on R`°dONLNdÁ⁄¢Ê∫)kpage R`°dONLNdÏ⁄∫Ê»)4-9R`°dONLNdÔ⁄»ÊÕ). .°dONLNdÚ*
  2259. D(*RESULëİdONLNd˜D
  2260. h)T CODES
  2261. .°dONLNdˇlÄ+(The °dONLNdÄ») IpSetDisplay°dONLNd»")HCharacteristics°dONLNd"N)Z  function rR`°dONLNd)Nk),eturns R`°dONLNd0kâ)noErrR`°dONLNd5âœ) upon successful .°dONLNdFl'†($l completion.°dONLNdR-l9è*    If an errÖ°dONLNd[-è9)#or is detected, this function r®@°dONLNdz-9¢)~#eturns one of the values listed her•İdONLNdù-¢9©)ïe:.°dONLNd†:lF¿(ClkIpBadArgError.°dONLNd∞:2F¡)Δ Parameter is or contains an addr‰ °dONLNd–:¡FÈ)è
  2262. ess of an °dONLNd⁄E2Q(N2invalid data item..°dONLNdÌPl\ˆ(YlkIpNoContextExistsError°dONLNdP2\F)ΔThe °dONLNd
  2263. PF\X)ipm°dONLNdPX\Û)# parameter does not point to valid .°dONLNd0[2gG(d2data.°dONLNd6Ä*âQ(á*SEE ALSO
  2264. .°dONLNd?çlô+BIpCalculateColorTables°dONLNdUçô˛)Ñ on °dONLNdYç˛ô)page °dONLNd^çô$)4-9°dONLNdaç$ô)), °dONLNdcç)ôÀ)IpGetDisplayCharacteristics°dONLNd~çÀôŸ)¢ on °dONLNdÇöl¶Ñ(£lpage °dONLNdáöѶó)4-13°dONLNdãöó¶ú), °dONLNdçöú¶D)IpInitDisplayCharacteristics°dONLNd©öD¶â)®, described nextˇ0@ˇ ˇˇˇˇ@
  2265. ˇ·ˇ‚7^
  2266. 4H\, Palatino&e.3+ä"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@äDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄ä˙(‡ä!Image Processing Module Reference
  2267. , (‡4-154^H¿
  2268. jHr4jHr lHl
  2269. ˇ·ˇ‚7^ °dONLNd\Hj„(fHIpInitDisplayCharacteristicsˇˇˇˇˇˇ(f4,
  2270. Courier
  2271. .°dONLNd{äá>(ÑäOSErr FAR PASCAL IpInitDisplay°dONLNd<{>áò)¥Characteristics°dONLNdTâï∂(í(unsigned char far * ipm);°dONLNdo°ä≠ú(™äipm.°dONLNds°Ã≠ë)B,Pointer to the memory allocated for the IPM.°dONLNd†«H–Å(ŒH DESCRIPTION
  2272. °dONLNd¨‘ä‡À+BThis function rj¿°dONLNdª‘À‡)Aeplaces the curr¢ °dONLNdÀ‘‡.)Eent CRf °dONLNd—‘.‡Î),T display characteristics and derived color °dONLNd˝·äÌì(ÍäprG °dONLNdˇ·îÌk)
  2273. 1ocessing tables with the default values shown in `°dONLNd0·lÌr)ÿTF °dONLNd1·qÌì)able 4-2S†°dONLNd9·ìÌ®)" and @¿°dONLNd>·©ÌØ)TvİdONLNd?·ÆÌ–)able 4-3ѰdONLNdG·–Ì’)". .°dONLNdJÛ䡫(¸äAfter calling °dONLNdXÛ«ˇo)=IpInitDisplayCharacteristics°dONLNdtÛoˇ»)®, make a call to the °dONLNdâä (    äIpCalculateColorTables°dONLNdü Î)Ñ3 function to calculate and set the default display °dONLNd“ä8(ä'characteristics for subsequent image prR`°dONLNd˘8u)Æocessing. The R`°dONLNdu˘)=IpCalculateColorTablesR`°dONLNd˘˚)Ñ .°dONLNdä&ˆ(#äfunction is described on ’ °dONLNd7ˆ&)lpage ∞°dONLNd<&)4-9‡°dONLNd?&!). 
  2274. KHS4KHR NäN
  2275. ˇ·ˇ‚7^    °dONLNdB@äK±(Hä    Table 4-2°dONLNdL@»KÙ)>
  2276. Default CRW°dONLNdV@ÙK˘),T≠P°dONLNdW@˘KS) display characteristics°dONLNdqXäc»(`äCharacteristic °dONLNdÅXˆc)lX value°dONLNdâX,c2)6YW∞°dONLNdäX2cK) value
  2277. .°dONLNdëfär¿(oä    redChroma.°dONLNdõfˆr )l0.640°dONLNd°f-rC)70.330.°dONLNdßqä}Ã(zä greenChroma.°dONLNd≥qˆ} )l0.300°dONLNdπq-}C)70.600.°dONLNdø|äàΔ(Öä
  2278. blueChroma.°dONLNd |ˆà )l0.150°dONLNd–|-àC)70.060
  2279. ´H≥4´H≤ ÆäÆ
  2280. ˇ·ˇ‚7^    °dONLNd÷†ä´±(®ä    Table 4-3°dONLNd‡†»´Ù)>
  2281. Default CRW°dONLNd͆ٴ˘),T≠P°dONLNdΆ˘´o) display gamma characteristic°dONLNd
  2282. ∏ä√Δ(¿äCharacteristic°dONLNd∏ˆ√¸)lV0°dONLNd∏¸√)alue
  2283. .°dONLNdΔä“®(œägamma.°dONLNd%Δˆ“)l2.3°dONLNd)ÎHÙb(ÚHRESULëİdONLNd.ÎbÙÜ)T CODES
  2284. .°dONLNd6¯äû+(The °dONLNd:¯ûÏ)IpInitDisplay°dONLNdG¯ÏF)NCharacteristics°dONLNdV¯Fr)Z  function rR`°dONLNda¯rè),eturns R`°dONLNdh¯è≠)noErrR`°dONLNdm¯≠Û) upon successful .°dONLNd~äæ(ä completion.°dONLNdää#≠*    If an errÖ°dONLNdì≠#+)#or is detected, this function r®@°dONLNd≤+#¿)~#eturns one of the values listed her•İdONLNd’¿#«)ïe:.°dONLNdÿ$ä0fi(-äkIpBadArgError.°dONLNdË$P0fl)Δ Parameter is or contains an addr‰ °dONLNd$fl0)è
  2285. ess of an °dONLNd/P;ù(8Pinvalid data item..°dONLNd%:äF(CäkIpNoContextExistsError°dONLNd>:PFd)ΔThe °dONLNdB:dFv)ipm°dONLNdE:vF)# parameter does not point to valid .°dONLNdhEPQe(NPdata.°dONLNdnjHso(qHSEE ALSO
  2286. .°dONLNdwwäɉ+BCharacteristics°dONLNdÜw‰É
  2287. )Z     data strl°dONLNdèw
  2288. É )&uctur>`°dONLNdîw É3)e on >`°dONLNdôw3ÉK)page >`°dONLNdûwKÉY)4-6>`°dONLNd°wYÉ^), >`°dONLNd£w^É‚)IpCalculateColorTables>`°dONLNdπw‚É)Ñ on °dONLNdΩÑäê¢(çäpage °dONLNd¬Ñ¢ê∞)4-9°dONLNd≈Ñ∞êµ), °dONLNd«ѵêW)IpGetDisplayCharacteristics°dONLNd‚ÑWêe)¢ on °dONLNdÊÑeê})page °dONLNdÎÑ}êê)4-13°dONLNdÔÑêêï), °dONLNdÒëäù,(öäIpSetDisplayCharacteristics°dONLNd ë,ù:)¢ on °dONLNdë:ùR)page °dONLNdëRùe)4-14ˇ,@ˇ ˇˇˇˇ@
  2289. ˇ·ˇ‚7^
  2290. 4*\¯, Palatino&e.3+l"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@lDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄*˙¯
  2291. (‡*4-16    )B!Image Processing Module Reference4^*¿¯
  2292. j*r¯4j*r¯ l*l˛
  2293. ˇ·ˇ‚7^ °dONLNd\*j∑(f*IpGetCameraColorMatrixˇˇˇˇˇˇ(fÚ4,
  2294. Courier
  2295. .°dONLNd{láÏ(Ñl@OSErr FAR PASCAL IpGetCameraColorMatrix(unsigned char far * ipm,°dONLNdcâ ï¬+¥double far * cameraMatrix);°dONLNd°l≠~(™lipm.°dONLNdɰÆ≠v)B-Pointer to the memory allocated for the IPM. .°dONLNd±±lΩ¥(∫l cameraMatrix.°dONLNdæΩÆ…≈+B AddrC¿°dONLNd¬ΩΔ…!)ess at which the curr(İdONLNd◊Ω!…ô)[ent camera color matrix is r¡°dONLNdÛΩô…æ)xeturned.°dONLNd¸„*Ïc(Í* DESCRIPTION
  2296. .°dONLNdl¸Ä+BThe °dONLNd ĸ)IpGetCameraColorMatrix°dONLNd"¸0)Ñ  function rR`°dONLNd-0¸p),eturns the curr$¿°dONLNd<p¸Á)@ent camera color matrix in .°dONLNdW˝l    è(lthe user∞ °dONLNd_˝è    Æ)#-specifir °dONLNdg˝Ø    Y) &ed location. The memory allocated to ró°dONLNdç˝Y    Ê)™ eceive this information must be .°dONLNd≠
  2297. lz(llarR`°dONLNd∞
  2298. zX)3ge enough to contain a 3-by-4 color matrix of type R`°dONLNd„
  2299. X|)fidoubleR`°dONLNdÈ
  2300. |Å)$. 
  2301. %*3¯4%*2¯.°dONLNdÏ%l-ã(+lIMPORTİdONLNdÚ%ã-õ)ANT
  2302. ˇ·ˇ‚7^
  2303. °dONLNdˆ0l<(9l&Since the color matrix and image comprd °dONLNd0<ü)∞ession schemes in the camera °dONLNd9<lH’(Elmay change in the futurOİdONLNdP<÷Hù)j/e, it is always important to check the version °dONLNdHlTÁ(Qlnumber of the color matrix. 9¿°dONLNdõHËTÓ)|Y˙@°dONLNdúHÌTß)'ou must make adjustments in your image °dONLNd√Tl`u(]lprG °dONLNd≈Tv`≠)
  2304. Gocessing setup, based on the version number of the color matrix in the °dONLNd `llø(ilcamera as follows: °dONLNd!xlÑØ*MIf the color matrix in the camera is version 1, use the default color matrix °dONLNdnÑlêë* in the WäİdONLNdvÑëêõ)%:indows IPM and pass that matrix back to the IPM for image °dONLNd∞êlúu(ôlprG °dONLNd≤êvú\)
  2305. 9ocessing. If it is not version 1, pass the color matrix r†°dONLNdÎê]ú†)Áeturned by the °dONLNd˙úl®+(•l)camera to the IPM for subsequent image pr[`°dONLNd#ú+®w)øocessing. See the .°dONLNd5®l¥ˆ(±lIpInitCameraColorMatrix°dONLNdL®ˆ¥*)ä function on °dONLNdY®*¥B)4page °dONLNd^®B¥U)4-17°dONLNdb®U¥û) for information .°dONLNds¥l¿X(Ωl8about initializing the default color matrix in the IPM. °dONLNd¨⁄*„D(·*RESULëİdONLNd±⁄D„h)T CODES
  2306. .°dONLNdπÁlÛÄ+(The °dONLNdΩÁÄÛ)IpGetCameraColorMatrix°dONLNd”ÁÛ0)Ñ  function rR`°dONLNdfiÁ0ÛM),eturns R`°dONLNdÂÁMÛk)noErrR`°dONLNdÍÁkÛÊ) upon successful completion..°dONLNd˘lè(l    If an errÖ°dONLNd˘è€)#or is detected, it r †°dONLNd$˘‹q)M#eturns one of the values listed her‡°dONLNdG˘qx)ïe:.°dONLNdJl¿(lkIpBadArgError.°dONLNdZ2¡)Δ Parameter is or contains an addr‰ °dONLNdz¡È)è
  2307. ess of an °dONLNdÑ2(2invalid data item..°dONLNdól(ˆ(%lkIpNoContextExistsError°dONLNd∞2(F)ΔThe °dONLNd¥F(X)ipm°dONLNd∑X(Û)# parameter does not point to valid .°dONLNd⁄'23G(02data.°dONLNd‡L*UQ(S*SEE ALSO
  2308. .°dONLNdÈYle+BIpSetCameraColorMatrix°dONLNdˇYe:)Ñ, described next; °dONLNdY:eƒ)JIpInitCameraColorMatrix°dONLNd(Yƒe“)ä on .°dONLNd,flrÉ(olpage Z‡°dONLNd1fÑrñ)4-17ˇé@ˇ ˇˇˇˇ@
  2309. ˇ·ˇ‚7^
  2310. 4H\, Palatino&e.3+ä"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@äDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄ä˙(‡ä!Image Processing Module Reference
  2311. , (‡4-174^H¿
  2312. jHr4jHr lHl
  2313. ˇ·ˇ‚7^ °dONLNd\Hj“(fHIpSetCameraColorMatrixˇˇˇˇˇˇ(f4,
  2314. Courier
  2315. .°dONLNd{äá
  2316. (Ñä@OSErr FAR PASCAL IpSetCameraColorMatrix(unsigned char far * ipm,°dONLNdbâ,ïŒ+¢double far * cameraMatrix);°dONLNd~°ä≠ú(™äipm.°dONLNdǰÃ≠î)B-Pointer to the memory allocated for the IPM. .°dONLNd∞±äΩ“(∫ä cameraMatrix.°dONLNdΩΩÃ…„+B AddrC¿°dONLNd¡Ω‰…†)+ess of the new 3-by-4 camera color matrix. °dONLNdÌ„HÏÅ(ÍH DESCRIPTION
  2317. .°dONLNd˘ä¸û+BThe °dONLNd˝û¸")IpSetCameraColorMatrix°dONLNd"¸N)Ñ  function rR`°dONLNdN¸¿),eplaces values in the curr$¿°dONLNd8¿¸ )rent camera color ˇˇê»°dONLNdI˝ä    Ê(ämatrix with the user∏°dONLNd]˝Á    e)]-supplied color tables in the ˇ˛≤Xÿ†°dONLNd{˝e    ≠)~ cameraMatrixˇˇê»ÿ†°dONLNdá˝≠    fi)H
  2318.  parameter¨°dONLNdë˝fi    )1. It is used to .°dONLNd°
  2319. äÙ(äcustomize the color corr£@°dONLNdπ
  2320. Ù)j    ection prdONLNd¬
  2321. å)'ocess to accommodate difº¿°dONLNd⁄
  2322. åò)qferü@°dONLNd›
  2323. ò⁄) ent display harÕ¿°dONLNdÏ
  2324. ⁄Ò)BdwarİdONLNd
  2325. Ú )e and °dONLNdˆä#E( ä*maintain compatibility with possible futur”°dONLNd E#˘)ª*e changes in the color matrix used in the °dONLNdJ$ä02(-ä$camera during the image capturing pr‡°dONLNdn$30O)©ocess. .°dONLNdv6äB«(?äAfter calling °dONLNdÑ6«BK)=IpSetCameraColorMatrix°dONLNdö6KBv)Ñ , call the °dONLNd•6vB˙)+IpCalculateColorTables°dONLNdª6˙B¸)Ñ .°dONLNdºCäO‚(LäOfunction to calculate and initialize the new color matrix for subsequent image .°dONLNd Pä\î*prR`°dONLNdPî\—)
  2326. ocessing. The R`°dONLNdP—\U)=IpCalculateColorTablesR`°dONLNd1PU\¿)Ñ function is described on R`°dONLNdKP¿\ÿ)kpage R`°dONLNdPPÿ\Ê)4-9R`°dONLNdSPÊ\Î). .°dONLNdVwHÄb(~HRESULëİdONLNd[wbÄÜ)T CODES
  2327. .°dONLNdcÑäêÀ+(This function rR`°dONLNdrÑÀêË)Aeturns R`°dONLNdyÑËê)noErrR`°dONLNd~ÑêÅ) upon successful completion.ˇˇÀh°dONLNdõñä¢≠(üä    If an errÈ0°dONLNd§ñ≠¢Ì)#or is detected, ˇˇb8Kh°dONLNd¥ñÓ¢r)AIpSetCameraColorMatrixˇˇÀhKh°dONLNd ñr¢w)Ñ rÈ0°dONLNdÃñw¢)#eturns one of the values listed her°dONLNdÔñ¢)óe:°dONLNdÚ£äØfi(¨äkIpBadArgError.°dONLNd£PØfl)Δ Parameter is or contains an addr‰ °dONLNd"£flØ)è
  2328. ess of an °dONLNd,ÆP∫ù(∑Pinvalid data item..°dONLNd?πä≈(¬äkIpNoContextExistsError°dONLNdXπP≈d)ΔThe °dONLNd\πd≈v)ipm°dONLNd_πv≈)# parameter does not point to valid .°dONLNdǃP–e(ÕPdata.°dONLNdàÈHÚo(HSEE ALSO
  2329. .°dONLNdëˆä+BIpCalculateColorTables°dONLNd߈)Ñ on °dONLNd´ˆ4)page °dONLNd∞ˆ4B)4-9°dONLNd≥ˆBG), °dONLNdµˆGÀ)IpGetCameraColorMatrix°dONLNdÀˆÀŸ)Ñ on °dONLNdœˆŸÒ)page °dONLNd‘ˆÒ)4-16°dONLNdÿˆ    ), °dONLNd⁄ä( äIpInitCameraColorMatrix°dONLNdÒY)ä, described next
  2330. @HH4@HH BHB
  2331. ˇ·ˇ‚7^ .°dONLNd2H@’(<HIpInitCameraColorMatrixˇˇˇˇˇˇ(<4
  2332. .°dONLNdRä^([äBOSErr FAR PASCAL IpInitCameraColorMatrix(unsigned char far * ipm);°dONLNd^jävú*ipm.°dONLNdbjÃvî)B-Pointer to the memory allocated for the IPM. °dONLNdêèHòÅ(ñH DESCRIPTION
  2333. .°dONLNdúùä©û+BThe °dONLNd†ùû©()IpInitCameraColorMatrix°dONLNd∑ù(©T)ä  function rR`°dONLNd¬ùT©õ),eplaces the curr$¿°dONLNd“ùõ©)Gent camera color matrix .°dONLNdÍ™ä∂2(≥ä&with default IPM color matrix values. ˇ∞@ˇ ˇˇˇˇ@
  2334. ˇ·ˇ‚7^
  2335. 4*\¯, Palatino&e.3+l"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@lDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄*˙¯
  2336. (‡*4-18    )B!Image Processing Module Reference4^*¿¯
  2337. .°dONLNd\lh©(elAfter calling ,
  2338. Courier°dONLNd\©h3)=IpInitCameraColorMatrix°dONLNd%\3h^)ä , call the °dONLNd0\^h‚)+IpCalculateColorTables°dONLNdF\‚h‰)Ñ .°dONLNdGilu–(rlSfunction to calculate and initialize the default color matrix for subsequent image .°dONLNdövlÇv*prR`°dONLNdúvvÇ≥)
  2339. ocessing. The R`°dONLNd™v≥Ç7)=IpCalculateColorTablesR`°dONLNd¿v7Ç¢)Ñ function is described on R`°dONLNd⁄v¢Ç∫)kpage R`°dONLNdflv∫Ç»)4-9R`°dONLNd‚v»ÇÕ). .°dONLNdÂú*•D(£*RESULëİdONLNdÍúD•h)T CODES
  2340. .°dONLNdÚ™l∂Ä+(The °dONLNdˆ™Ä∂
  2341. )IpInitCameraColorMatrix°dONLNd™
  2342. ∂6)ä  function rR`°dONLNd™6∂S),eturns R`°dONLNd™S∂q)noErrR`°dONLNd$™q∂Î) upon successful completion .°dONLNd@∑l√É(¿land r≤ °dONLNdE∑É√ò)estor5†°dONLNdJ∑ô√1)#es the default camera color matrix.°dONLNdn…l’è(“l    If an errÖ°dONLNdw…è’€)#or is detected, it r †°dONLNdã…‹’q)M#eturns one of the values listed her‡°dONLNdÆ…q’x)ïe:.°dONLNd±÷l‚¿(fllkIpBadArgError.°dONLNd¡÷2‚¡)Δ Parameter is or contains an addr‰ °dONLNd·÷¡‚È)è
  2343. ess of an °dONLNdη2Ì(Í2invalid data item..°dONLNd˛Ïl¯ˆ(ılkIpNoContextExistsError°dONLNdÏ2¯F)ΔThe °dONLNdÏF¯X)ipm°dONLNdÏX¯Û)# parameter does not point to valid .°dONLNdA˜2G(2data.°dONLNdG*$Q("*SEE ALSO
  2344. .°dONLNdP)l5+BIpCalculateColorTables°dONLNdf)5˛)Ñ on °dONLNdj)˛5)page °dONLNdo)5$)4-9°dONLNdr)$5)), °dONLNdt))5≠)IpGetCameraColorMatrix°dONLNdä)≠5ª)Ñ on °dONLNdé)ª5”)page °dONLNdì)”5Ê)4-16°dONLNdó)Ê5Î), °dONLNdô6lB(?lIpSetCameraColorMatrix°dONLNdØ6B˛)Ñ on °dONLNd≥6˛B)page °dONLNd∏6B))4-17
  2345. r*{¯4s*z¯ t*t˛
  2346. ˇ·ˇ‚7^ .°dONLNdΩe*sö(o*IpGetCompressionTÕ@°dONLNdŒeôs∞)oableˇˇˇˇˇˇ(oÚ4
  2347. .°dONLNd‘ÑlêÊ(çl?OSErr FAR PASCAL IpGetCompressionTable(unsigned char far * ipm,°dONLNdí û⁄+¥unsigned char far * compTable);°dONLNd>™l∂~(≥lipm.°dONLNdB™Æ∂s)B,Pointer to the memory allocated for the IPM..°dONLNdo∫lΔ¢(√l    compTable.°dONLNdy∫ÆΔ≈)BAddrC¿°dONLNd}∫ΔΔ)ess in which to stor@°dONLNdë∫ΔE)U
  2348. e the curr€@°dONLNdõ∫DΔq))    ent comprπİdONLNd§∫qΔ©)-ession table. °dONLNd≥‡*Èc(Á* DESCRIPTION
  2349. .°dONLNdøÌl˘Ä+BThe °dONLNd√Ì̞)IpGetCompressionTable°dONLNdÿÌ˛˘*)~  function rR`°dONLNd„Ì*˘t),eturns the compr$¿°dONLNdÛÌt˘º)Jession table curr˜ °dONLNd̪˘)Gently in use °dONLNd˙l(l!by the IPM at the location specifi°dONLNd3˙;)ó ed with the °dONLNd?˙;q)8    compTable°dONLNdH˙q£)6
  2350.  parameter¬†°dONLNdR˙¢ª)1. The ¬†°dONLNdX˙ªÒ)    compTable¬†°dONLNda˙ÒÛ)6 .°dONLNdblú(l    memory ar-‡°dONLNdkù⁄)1ea must be lar–†°dONLNdy⁄^)=ge enough to contain the entirÙ¿°dONLNdó^Å)Ñe comprø@°dONLNdûÇ·)$ession table, which is .°dONLNdµl ä(lspecifi°dONLNdºä ) ed by the value of the constant °dONLNd‹ Ç)åkIpDecompTableSize°dONLNdÓÇ µ)l (98 bytes). .°dONLNd¸&l2<(/l.This function is useful when you want to ensur≤ °dONLNd*&<2Ñ)–e that the compr∞ °dONLNd:&Ñ2È)Hession table you specifiò‡°dONLNdR&Í2˜)fed .°dONLNdU3l?Ñ(<lin an °dONLNd[3Ñ?)IpSetCompressionTable°dONLNdp3?q)~ function call has been prR`°dONLNdä3q?Á)ooperly passed to the IPM. .°dONLNd•Z*cD(a*RESULëİdONLNd™ZDch)T CODES
  2351. .°dONLNd≤glsÄ+(The °dONLNd∂gÄs˛)IpGetCompressionTable°dONLNdÀg˛s*)~  function rR`°dONLNd÷g*sG),eturns R`°dONLNd›gGse)noErrR`°dONLNd‚ges‡) upon successful completion.°dONLNdˇylÖê(Çl    If an errR`°dONLNdyêÖ—)$or is detected, R`°dONLNdy—ÖO)AIpGetCompressionTableR`°dONLNd-yOÖU)~ r$¿°dONLNd/yUÖÌ)#eturns one of the values listed her˜ °dONLNdRyÏÖÙ)óe:°dONLNdUÜlí¿(èlkIpBadArgError.°dONLNdeÜ2í¡)Δ Parameter is or contains an addr‰ °dONLNdÖÜ¡íÈ)è
  2352. ess of an °dONLNdèë2ù(ö2invalid data item..°dONLNd¢úl®ˆ(•lkIpNoContextExistsError°dONLNdªú2®F)ΔThe °dONLNdøúF®X)ipm°dONLNd¬úX®Û)# parameter does not point to valid .°dONLNdÂß2≥G(∞2data.ˇ@ˇ ˇˇˇˇ@
  2353. ˇ·ˇ‚7^
  2354. 4H\, Palatino&e.3+ä"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@äDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄ä˙(‡ä!Image Processing Module Reference
  2355. , (‡4-194^H¿°dONLNd\Heo(cHSEE ALSO,
  2356. Courier
  2357. .°dONLNd    jäv+BIpSetCompressionTable°dONLNdjvR)~, described next; °dONLNd0jRv÷)JIpInitCompressionTable°dONLNdFj÷v‰)Ñ on °dONLNdJj‰v¸)page °dONLNdOj¸v
  2358. )4-9
  2359. ¶HØ4ßHÆ ®H®
  2360. ˇ·ˇ‚7^ .°dONLNdSôHßµ(£HIpSetCompressionT#İdONLNddôµßÃ)mableˇˇˇˇˇˇ(£4
  2361. .°dONLNdj∏äƒ(¡ä?OSErr FAR PASCAL IpSetCompressionTable(unsigned char far * ipm,°dONLNd¥Δ>“¯+¥unsigned char far * compTable);°dONLNd‘fiäÍú(Áäipm.°dONLNdÿfiÃÍë)B,Pointer to the memory allocated for the IPM..°dONLNdÓä˙¿(˜ä    compTable.°dONLNdÓÃ˙„)BAddrC¿°dONLNdÓ‰˙A)ess of the new compr°°dONLNd'ÓA˙y)]ession table. °dONLNd6HÅ(H DESCRIPTION
  2362. .°dONLNdB!ä-û+BThe °dONLNdF!û-)IpSetCompressionTable°dONLNd[!-H)~  function rR`°dONLNdf!H-è),eplaces the curr$¿°dONLNdv!è-∫)G    ent compr˜ °dONLNd!π-    )*ession table with °dONLNdë.ä:‘(7äthe table specifi°dONLNd¢.‘:)J
  2363. ed by the °dONLNd¨.:6),    compTable°dONLNdµ.6:h)6
  2364.  parameter¬†°dONLNdø.g:õ)1 . The comprï°dONLNd .õ:‡)4ession table is rg`°dONLNd€.‡:    )E    etrieved °dONLNd‰;äGí(DäfrR`°dONLNdÊ;íG)om the camera with the R`°dONLNd˝;Ga)oCmGetDecompTableR`°dONLNd;aG)`( camera driver function, and it must be .°dONLNd5HäT˚(Qäpassed to the IPM unalterʰdONLNdNH˚TÇ)qed to maintain image decompràİdONLNdjHÉT)àession compatibility with the °dONLNdàUäafi(^äassociated images. °dONLNdúgäsf*0Any time you start a new session with the QuickTÉ °dONLNdÃgfsÊ)‹ake 100 camera, you should r<@°dONLNdËgÁs)Åetrieve °dONLNdtäÄ∑(}ä    the compr^@°dONLNd˘t∑Ķ)-8ession table and set it so that the IPM can use the apprg`°dONLNd1t¶Ä‰)Ôopriate comprΔ‡°dONLNd>t‰Ä)>ession °dONLNdEÅäç«(äätable when prÜİdONLNdRÅ«ç∑)=4ocessing any images downloaded during that session. .°dONLNdáìäüû(úäThe °dONLNdãìûü˛)CmGetDecompTable°dONLNdõì˛üõ)`$ function allows an application to rR`°dONLNdøìõü·)ùetrieve the curr$¿°dONLNdœì·ü)F ent version .°dONLNd€†ä¨¬(©ä of the compr߆°dONLNdÁ†¬¨4)8ession table in the QuickT. °dONLNd†4¨ )r#ake 100 camera. It is described on o °dONLNd$† ¨·)ñpage J°dONLNd)†‚¨Ù)2-45ù‡°dONLNd-†Ù¨) in °dONLNd1≠äπ‡(∂äChapter 2, “QuickTȆ°dONLNdC≠flπD)Uake 100 Driver Softwar$†°dONLNdY≠EπQ)fe.”°dONLNd]‘H›b(€HRESULëİdONLNdb‘b›Ü)T CODES
  2365. .°dONLNdj·äÌû+(The °dONLNdn·ûÌ)IpSetCompressionTable°dONLNdÉ·ÌH)~  function rR`°dONLNdé·HÌe),eturns R`°dONLNdï·eÌÉ)noErrR`°dONLNdö·ÉÌ˛) upon successful completion.°dONLNd∑Û䎯(¸ä    If an errR`°dONLNd¿ÛÆˇÔ)$or is detected, R`°dONLNd–ÛÔˇm)AIpSetCompressionTableR`°dONLNdÂÛmˇs)~ r$¿°dONLNdÁÛsˇ )#eturns one of the values listed her˜ °dONLNd
  2366. Û
  2367. ˇ)óe:°dONLNdä fi(    äkIpBadArgError.°dONLNdP fl)Δ Parameter is or contains an addr‰ °dONLNd=fl )è
  2368. ess of an °dONLNdG Pù(Pinvalid data item..°dONLNdZä"(äkIpNoContextExistsError°dONLNdsP"d)ΔThe °dONLNdwd"v)ipm°dONLNdzv")# parameter does not point to valid .°dONLNdù!P-e(*Pdata.°dONLNd£FHOo(MHSEE ALSO
  2369. .°dONLNd¨Sä_Í+BCmGetDecompTable°dONLNdºSÍ_¯)` on °dONLNd¿S¯_)page °dONLNd≈S_#)2-45°dONLNd…S#_(), °dONLNdÀS(_¶)IpGetCompressionTable°dONLNd‡S¶_¥)~ on °dONLNd‰S¥_Ã)page °dONLNdÈSÃ_fl)4-18°dONLNdÌSfl_‰), °dONLNdÔ`äl(iäIpInitCompressionTable°dONLNd`lS)Ñ, described next
  2370. ùH•4ùH• üHü
  2371. ˇ·ˇ‚7^ .°dONLNdèHù∏(ôHIpInitCompressionTÃİdONLNd(è∑ùŒ)oableˇˇˇˇˇˇ(ô4
  2372. .°dONLNd.Øäª(∏äAOSErr FAR PASCAL IpInitCompressionTable(unsigned char far * ipm);ˇ8@ˇ ˇˇˇˇ@
  2373. ˇ·ˇ‚7^
  2374. 4*\¯, Palatino&e.3+l"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@lDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄*˙¯
  2375. (‡*4-20    )B!Image Processing Module Reference4^*¿˜,
  2376. Courier
  2377. .°dONLNd\lh~(elipm.°dONLNd\Æhv)B-Pointer to the memory allocated for the IPM. °dONLNd2Å*äc(à* DESCRIPTION
  2378. .°dONLNd>èlõÄ+BThe °dONLNdBèÄõ)IpInitCompressionTable°dONLNdXèõ0)Ñ  function rR`°dONLNdcè0õw),eplaces the curr$¿°dONLNdsèwõ¢)G    ent compr˜ °dONLNd|è°õÒ)*ession table with .°dONLNdéúl®∫(•lthe default comprI`°dONLNdüúª®)Oession table values. v@°dONLNd¥ú®)WA∞‡°dONLNdµú®Z) default comprú‡°dONLNd√úZ®™)Aession table is storΰdONLNd◊ú™®Á)Ped within the °dONLNd©lµÉ(≤lIPM. °dONLNdΪl«r*Y@İdONLNdϪr« )(ou can check to see if the default compró °dONLNdª «ü)Æession table matches the currÒ°dONLNd1ªü«—) ent camera .°dONLNd<»l‘á(—lcomprR`°dONLNdA»á‘ˇ)ession table by calling the R`°dONLNd]»ˇ‘É)xIpInitCompressionTableR`°dONLNds»É‘Î)Ñ function followed by a °dONLNdã’l·Í(filIpGetCompressionTable°dONLNd†’Í·l)~ call to get the default comprR`°dONLNdæ’l·Ó)Çession table and then compar$¿°dONLNd⁄’Ó·ı)Çe °dONLNd‹‚lÓΩ(Îlthe default comprR`°dONLNdÌ‚ΩÓ/)Qession table to the table r$¿°dONLNd‚/Óh)returned by a $¿°dONLNd‚hÓ»)9CmGetDecompTable$¿°dONLNd%‚»ÓÛ)`  function. .°dONLNd1*D(*RESULëİdONLNd6Dh)T CODES
  2379. .°dONLNd>l"≠+(This function rR`°dONLNdM≠" )Aeturns R`°dONLNdT "Ë)noErrR`°dONLNdYË"e) upon successful completion. ˇˇ∂°dONLNdw(l4è(1l    If an erræÑ°dONLNdÄ(è4œ)#or is detected, ˇˇ"6‡∫°dONLNdê(œ4S)@IpInitCompressionTableˇˇ∂‡∫°dONLNd¶(S4X)Ñ ri,°dONLNd®(Y4Ô)#eturns one of the values listed her¯°dONLNdÀ(Ô4˜)ñe:°dONLNdŒ5lA¿(>lkIpBadArgError.°dONLNdfi52A¡)Δ Parameter is or contains an addr‰ °dONLNd˛5¡AÈ)è
  2380. ess of an °dONLNd@2L(I2invalid data item..°dONLNdKlWˆ(TlkIpNoContextExistsError°dONLNd4K2WF)ΔThe °dONLNd8KFWX)ipm°dONLNd;KXWÛ)# parameter does not point to valid .°dONLNd^V2bG(_2data.°dONLNddz*ÉQ(Å*SEE ALSO
  2381. .°dONLNdmàlîÃ+BCmGetDecompTable°dONLNd}àÃî⁄)` on °dONLNdÅà⁄îÚ)page °dONLNdÜàÚî)2-45°dONLNdäàî
  2382. ), °dONLNdåà
  2383. îà)IpGetCompressionTable°dONLNd°ààîñ)~ on °dONLNd•àñîÆ)page °dONLNd™àÆî¡)4-18°dONLNdÆà¡îΔ), °dONLNd∞ïl°Í(ûlIpSetCompressionTable°dONLNd≈ïͰ¯)~ on °dONLNd…ﯰ)page °dONLNdŒï°#)4-19°dONLNd“ï#°%) ˇ
  2384. §@ˇ ˇˇˇˇ@
  2385. ˇ·ˇ‚7^
  2386. 4H\, Palatino&e.3+ä"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@äDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄ä˙(‡ä1C-Language Summary of the Image Processing Module
  2387. , (‡4-214^H¿
  2388. ^Hx4^Hx
  2389. àHê4âHê äHä
  2390. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNduHà^(ÉH"C-Language Summary of the Image PrcÙ°dONLNd"u^à◊(É^ocessing ModuleˇˇˇˇˇˇV˛)∞4
  2391. ≤H∏4≥H∑ ¥H¥
  2392. ˇ·ˇ‚7^ °dONLNd3ßH≤y(ØH    Constantsˇˇˇˇˇˇa‡(Ø4,
  2393. Courier
  2394. .°dONLNd>¬HŒÃ(ÀHkIPMContextSize (4096)°dONLNdU€HÁΔ*kIpDecompTableSize 98°dONLNdkÙH®*IpProgressInit 0°dONLNd|H¥*IpProgressUpdate 1°dONLNdèH¢*IpProgressEnd 2°dONLNdü)H5Ñ*
  2395. kGray8 = 0°dONLNd¨)Ñ5)< /* 8-bit grayscale */°dONLNd√7HCl(@HkDIB24°dONLNdÃ7~C¸)6 /* 24-bit DIB BMP */°dONLNd‚PH\¢(YHkImgRot0   = 0,°dONLNd˜P¥\J)l/*   0-degree rotation */°dONLNd^Hj¢(gHkImgRot90  = 1,°dONLNd&^¥jJ)l/*  90-degree rotation */°dONLNd@lHx¢(uHkImgRot180 = 2,°dONLNdUl¥xJ)l/* 180-degree rotation */°dONLNdozHÜú(ÉHkImgRot270 = 3°dONLNdÉz¥ÜJ)l/* 270-degree rotation */
  2396. ∏HΩ4∏HΩ πHπ
  2397. ˇ·ˇ‚7^ .°dONLNdû≠H∏b(µHData òp°dONLNd£≠b∏h)Tµ‡°dONLNd§≠h∏)ypesˇˇˇˇˇˇa‡(µ4°dONLNd™ŒH⁄ï(◊HImageAttribute
  2398. .°dONLNdπÂHÒ*typedef struct imageAttribute {°dONLNd‡ÛΔˇ&+~/* image size */°dONLNdÚZÆ(
  2399. Zunsigned short°dONLNdΔ)l
  2400. aImgWidth;°dONLNdZÆ(Zunsigned short°dONLNd&Δ)l aImgLength;°dONLNd9Δ)z*/* output image attributes: */°dONLNdY+Z7ú(4Z IpPixelType°dONLNdj+Δ7)l aPixelType;°dONLNdw9ZEú(BZ RotateAngle°dONLNdà9ΔE)laAngle;°dONLNdóGΔSz*/* image banding parameters */°dONLNd∑UZaÆ(^Zunsigned short°dONLNdÀUΔa)laStartingLine;°dONLNd€cZoÆ(lZunsigned short°dONLNdÔcΔo)laLinesPerBand;°dONLNdˇqZ}ä(zZBoolean °dONLNdqΔ})l
  2401. firstBand;°dONLNdZãä(àZBoolean °dONLNd'Δã¸)l    lastBand;°dONLNd1çHôN(ñH}°dONLNd3çZô¥)ImageAttribute;ˇ
  2402. t@ˇ ˇˇˇˇ@
  2403. ˇ·ˇ‚7^
  2404. 4*\¯, Palatino&e.3+l"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@lDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄*˙¯
  2405. (‡*4-22    )B1C-Language Summary of the Image Processing Module4^*¿¯ °dONLNd\*hs(e*Characteristics,
  2406. Courier
  2407. .°dONLNdt*ÄÍ* typedef struct characteristics {°dONLNd2Ç<él+XYChroma°dONLNd?Çñé“)Z
  2408. redChroma;°dONLNdKê<úl(ô<XYChroma°dONLNdXêñúfi)Z greenChroma;°dONLNdfû<™l(ß<XYChroma°dONLNdsûñ™ÿ)Z blueChroma;°dONLNdĨ<∏`(µ<double°dONLNdã¨ñ∏∫)Zgamma;°dONLNdí∫*Δú(√*} Characteristics;  .°dONLNd¶Ÿ*Âa*XYChroma
  2409. .°dONLNdØ*¸Δ*typedef struct xyChroma { °dONLNdÀ˛<
  2410. f+double °dONLNd’˛r
  2411. ®)6    xChroma; °dONLNd‡ <f(<double °dONLNdÍ r®)6    yChroma; °dONLNdÙ*&r(#* } XYChroma;  .°dONLNd9*Eh* RotateAngle
  2412. .°dONLNdQ*]Δ*typedef enum rotateAngle {°dONLNd1Qfi]§)¥!/* (counterclockwise rotation) */°dONLNdT_<kñ(h<kImgRot0   = 0,°dONLNdl_fikh)¢/* 0-degree rotation */°dONLNdÖm<yñ(v<kImgRot90  = 1,°dONLNdùmfiyn)¢/* 90-degree rotation */°dONLNd∑{<áñ(Ñ<kImgRot180 = 2,°dONLNdœ{fiát)¢/* 180-degree rotation */°dONLNdÍâ<ïê(í<kImgRot270 = 3°dONLNdâfiït)¢/* 270-degree rotation */°dONLNdó*£Ñ(†*} RotateAngle; 
  2413. Δ*ï4«*À¯ »*»¯
  2414. ˇ·ˇ‚7^ .°dONLNd+ª*ΔY*#    Functionsˇˇˇˇˇˇa‡(√Ú4
  2415. .°dONLNd6÷*‚Ã(fl*OSErr FAR PASCAL IpInitIPM °dONLNdY‰®D+~(unsigned char far * ipm);°dONLNdt˝*    Δ(*OSErr FAR PASCAL IpEndIPM °dONLNdñ ®D+~(unsigned char far * ipm);°dONLNd±$*0(-*(OSErr FAR PASCAL IpConvertThumbnailToRGB°dONLNd·2®>>+~(unsigned char far * ipm,°dONLNd@®LÄ*$ unsigned char huge * pCompedTNail, °dONLNd.N®Zh*  unsigned char huge * pTNailRGB,°dONLNdV\®hb* ImageAttribute far * imgAttr);°dONLNdvu*Å(~*!typedef struct progressCallBack {°dONLNdôÉ<è¸+ IpProgressProcPtr callBackProc; °dONLNdªë<ùÑ* long refcon;°dONLNd»ü*´¢(®*} ProgressCallBack; ˇæ@ˇ ˇˇˇˇ@
  2416. ˇ·ˇ‚7^
  2417. 4H\, Palatino&e.3+ä"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@äDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄ä˙(‡ä1C-Language Summary of the Image Processing Module
  2418. , (‡4-234^H¿,
  2419. Courier.°dONLNd\Hh (eH$OSErr FAR PASCAL IpConvertADPCMtoRGB°dONLNd,jΔv\+~(unsigned char far * ipm,°dONLNdMxΔÑå*! unsigned char huge * pCompedCDI,°dONLNdvÜΔín* unsigned char huge * pRGB, °dONLNdöîΔ†z* ImageAttribute far * imgAttr,°dONLNd¿¢ΔÆ™*& ProgressCallBack far * CallBackProc);°dONLNdÁªH«P(ƒH,OSErr FAR PASCAL IpGetDisplayCharacteristics°dONLNd…Δ’b+~(unsigned char far * ipm, °dONLNd=◊Δ„∞*'Characteristics far * characteristics);°dONLNdeH¸P(˘H,OSErr FAR PASCAL IpSetDisplayCharacteristics°dONLNdô˛Δ
  2420. b+~(unsigned char far * ipm, °dONLNdª Δ∞*'Characteristics far * characteristics);°dONLNd„%H1V(.H-OSErr FAR PASCAL IpInitDisplayCharacteristics°dONLNd3Δ?b+~(unsigned char far * ipm);°dONLNd3LHX2(UH'OSErr FAR PASCAL IpGetCameraColorMatrix°dONLNdbZΔf\+~(unsigned char far * ipm,°dONLNdÉhΔtn* double far * cameraMatrix);°dONLNd†ÅHç2(äH'OSErr FAR PASCAL IpSetCameraColorMatrix°dONLNdœèΔõ\+~(unsigned char far * ipm,°dONLNdùΔ©n* double far * cameraMatrix);°dONLNd∂H¬8(øH(OSErr FAR PASCAL IpInitCameraColorMatrix°dONLNd=ƒΔ–b+~(unsigned char far * ipm);°dONLNdX›HÈ,(ÊH&OSErr FAR PASCAL IpGetCompressionTable°dONLNdÜÎΔ˜\+~(unsigned char far * ipm,°dONLNdߢΔÜ*  unsigned char far * compTable);°dONLNd»H,(H&OSErr FAR PASCAL IpSetCompressionTable°dONLNdˆ Δ,\+~(unsigned char far * ipm,°dONLNd.Δ:å*! unsigned char far * compTable); °dONLNd9GHS2(PH'OSErr FAR PASCAL IpInitCompressionTable°dONLNdhUΔah+~(unsigned char far * ipm); ˇ
  2421. @ˇ ˇˇˇˇ@
  2422. ˇ·ˇ‚7^
  2423. 4*\¯, Palatino&e.3+l"CHAPTER ”)>4,     Helvetica    ˇˇ—ÚˇÆ(@lDisplaying QuickTÒÚ)Dake 100 Images in a W0L)Yindows ä) Application4⁄*˙¯
  2424. (‡*4-24    )B1C-Language Summary of the Image Processing Module4^*¿¯
  2425. h*n¯4i*m¯ j*j¯
  2426. ˇ·ˇ‚7^ °dONLNd]*hl(e* Result Codesˇˇˇˇˇˇa‡(eÚ4,
  2427. Courier
  2428. .°dONLNdq*}H(z*noErr.°dONLNdqˆ}k)ÃOperation was successful. .°dONLNd0}*âr(Ü* kIpAppCancel.°dONLNd>}ˆâ£)Ã'Operation canceled by the application. .°dONLNdfâ*ï~(í*kIpBadArgError.°dONLNdvâˆïÖ)àParameter is or contains an addr‰ °dONLNdñâÖïÂ)èess of an invalid data °dONLNd≠(ûˆitem. .°dONLNd¥°*≠`(™*    kIpCancel.°dONLNdø°ˆ≠û)Ã&The application wants to cancel the prZ†°dONLNd°û≠ˆ)®ocess. The IPM will °dONLNd˘≠ˆπC(∂ˆdiscontinue its prt°dONLNd ≠Cπt)M ocess and rOİdONLNd≠tππ)1eturn the value .°dONLNd&πˆ≈>(¬ˆ kIpAppCancel°dONLNd2π>≈A)H.°dONLNd4≈*—Ã(Œ*KIpColorTablesNotCalculated.°dONLNdQ≈ˆ—V)ÃColor parameters wer†°dONLNde≈W—Ô)a"e changed without calculating the °dONLNdá—ˆ›=(⁄ˆderived color pr…`°dONLNdó—=›ò)Gocessing tables. Call .°dONLNd≠›ˆÈz(ʈIpCalculateColorTables°dONLNd√›zÈì)Ñ beforR`°dONLNd…›ìÈ⁄)e attempting to .°dONLNdŸÈˆıˇ(ÚˆprG °dONLNd€Èı^)
  2429. ocess another image. .°dONLNdÒı*®(˛*kIpContextExistsError.°dONLNdıˆ)ÃThe;¿°dONLNd ı    ) ª¿°dONLNd ı    3)
  2430. IPM is alrk‡°dONLNdı4b)+    eady opens°dONLNdıbâ).
  2431. . This errã¿°dONLNd)ıâœ)'or occurs when ˇ˛ˇ˛.°dONLNd8ˆ,(
  2432. ˆ    IpInitIPMˇˇ™™°dONLNdA,˜)60 is called twice without an intervening call to °dONLNdqˆ&(ˆIpEndIPM°dONLNdy&+)0. °dONLNd|*%¥("*kIpNoContextExistsError°dONLNdïˆ%
  2433. )ÃThe °dONLNdô
  2434. %)ipm°dONLNdú%–)( parameter does not point to valid data.°dONLNdƒ–%“)¥ °dONLNdΔ%*1ä(.*kIpNoMemoryError.°dONLNdÿ%ˆ1à)àSystem failed to allocate memory=`°dONLNd¯%à1ç)í. ˇ@ˇ ˇˇˇˇ@
  2435. ˇ·ˇ‚7^
  2436. 4⁄∫˙, Palatino    3,. Ã+∫#CHAPTER ÿ)h5ˇˇu÷ˇÆ°dONLNdZ∫wì(p∫Displaying QuickT‰ˆ°dONLNdZëwÏ)◊ake 100 °dONLNdz∫ó¡(ê∫Images in a Macintosh 
  2437. πHX4πHX RHR
  2438. ˇ·ˇ‚7^°dONLNd/ö∫∑A*  Applicationˇˇˇˇˇˇä*(∞    5
  2439. ^ÇH4`}Cˇˇˇˇˇˇ,     Helvetica    (f
  2440. Figure 5-0*     Listing 5-0*    T)able 5-0ˇT@ˇ ˇˇˇˇ@
  2441. ˇ·ˇ‚7^
  2442. 4*\¯, Palatino&e.3+l"CHAPTER ”)>5,     Helvetica    ˇˇ—ÚˇÆ(@lDisplaying QuickTÒÚ)Dake 100 Images in a Macintosh )z Application4⁄*˙¯
  2443. (‡*5-2    )BQuickT@)ake 100 QuickTØ@)>ime Decompressor4^*¿¯
  2444. °dONLNd\lhl(el8This chapter describes the method used to display QuickTí`°dONLNd8\lh’(elake 100 images with an °dONLNdOilu§(rlapplication rïİdONLNd\i§ug)8*unning in the Macintosh Operating System. °dONLNdá{lá¿(ÑlThe information præ@°dONLNdô{¿áÚ)T esented herg†°dONLNd§{Ûá)3 e is for prY¿°dONLNdØ{át)*ogrammers who alr=İdONLNd¿{táÙ)Weady understand how to use °dONLNd€àlîå(ëlQuickTfi‡°dONLNd·àåî¬)  ime, QuickT√¿°dONLNdÏà¬îÙ)6    ime ComprÒ`°dONLNdıàÙîê)2 essors, and QuickDraw to decompr7°dONLNdàëî◊)ùess and display °dONLNd%ïl°Ü(ûlpicturÈ@°dONLNd+ïܰì)e fi?†°dONLNd/ïî°)les on the Macintosh computerº†°dONLNdLï° )á. 
  2445. ®*√¯4©*√¯
  2446. ”*€¯4‘*€¯ ’*’˛
  2447. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNdP¿*”_(Œ*QuickT·å°dONLNdV¿^”Õ)4ake 100 QuickTDò°dONLNdd¿Õ”/)o ime Decompr§^°dONLNdo¿/”S)bessorˇˇˇˇˇˇV˛)¡5
  2448. °dONLNdv‰l"(Ìl(As described in Chapter 3, images capturT¿°dONLNdû‰"k)∂ed in the QuickTQ¿°dONLNdƉkπ)Iake 100 camera ar°dONLNdø‰π—)Ne storÛİdONLNd≈‰—È)ed in °dONLNdÀÒl˝à(˙lcompr‡°dONLNd–Òâ˝%)!essed format that must be decompr‰`°dONLNdÒÒ$˝Æ)õessed and converted to a pictur›°dONLNdÒÆ˝È)äe format that °dONLNd˛l
  2449. p(l:can be displayed by the host operating system. Images storó¿°dONLNdX˛p
  2450. „(ped on the camera must be °dONLNdq lo(lrE°dONLNdr pû) etrieved fr °dONLNd} û)).om the camera with the QuickTÚİdONLNdö (Ô)ä.ake 100 device driver functions, described in °dONLNd»l$≥(!lChapter 2, befor»¿°dONLNdÿ≥$·)G    e decomprx†°dONLNd·‚$ )/3ession and conversion operations can be performed. °dONLNd*l6å(3lQuickTÄİdONLNd*å6÷) ake 100 image pr5İdONLNd+*◊6–)K7ocessing support for the Macintosh Operating System is °dONLNdb7lC€(@lincorporated in a QuickTfi`°dONLNdz7⁄C)nake 100 QuickTñ°dONLNdà7CX)D ime decompr@°dONLNdì7YCo);essor†°dONLNdò7nCß) . The QuickT,‡°dONLNd§7ßC )9ake 100 °dONLNd¨DlPå(MlQuickTfi‡°dONLNd≤DåPΔ)  ime decomprK °dONLNdΩD«P);essor takes car@°dONLNdÃDPÁ)@4e of the details that would otherwise be associated °dONLNdQl](Zl"with using the IPM functions to pr °dONLNd"Q]N)òocess the QuickTÏ`°dONLNd2QN]’)Jake 100 image data. Instead of °dONLNdQ^lj€(glmanipulating the QuickThİdONLNdh^€j>)oake 100 image data dir˝†°dONLNd~^>j◊)c#ectly with the IPM functions, your °dONLNd°klw(tlapplication passes the QuickTİdONLNdækw‹)Ñ4ake 100 image data along with an image description r‡°dONLNdÚk‹wÓ)Ïecorv@°dONLNdˆkÓwˆ)d °dONLNd¯xlÑ+(Ål+that describes the image data to the QuickT8`°dONLNd#x+Ño)øake 100 QuickT°dONLNd1xnÑ®)C ime decompr\@°dONLNd<x©Ñø);essorJ†°dONLNdAxøÑÙ) . The image .°dONLNdMÖlë•(éldescription rR`°dONLNdZÖ•ë∑)9ecor$¿°dONLNd^Ö∑ë–)d is fi$¿°dONLNdeÖ–ë)lled in with a fi$¿°dONLNdvÖëE)H le type of ,
  2451. Courier$¿°dONLNdÅÖEëi)-'qktk'$¿°dONLNdáÖiëÄ)$, the $¿°dONLNdçÖÄë§)height$¿°dONLNdìÖ§ëπ)$ and $¿°dONLNdòÖπë◊)width$¿°dONLNdùÖ◊ë‡) fi$¿°dONLNd†Ö‡ëı)    elds ˇˇŸ˙°dONLNd•ílûv(õlarR`°dONLNdßívûä)
  2452. ?e set for the height and width of the image in pixels, and the ˇˇçÓ> °dONLNdÊíãûª(õãdataSizeˇˇŸ˙> °dONLNdÓíªû√)0 fi°dONLNdÒíƒû¯)    eld is set to .°dONLNdˇül´»(®lthe size of the comprt°dONLNdü»´T)\essed data in bytes. The QuickT–‡°dONLNd3üS´ù)ãake 100 decompr臰dONLNdBüû´Õ)K essor then °dONLNdM¨l∏u(µlprG °dONLNdO¨v∏“)
  2453. ocesses the data to crü¿°dONLNde¨“∏F)\eate a Macintosh display-r.İdONLNd¨G∏y)u eady picturå@°dONLNdä¨y∏Ü)2e fi‚†°dONLNdé¨Ü∏í)le. °dONLNdìæl r(«lTµ¿°dONLNdîæq æ)o show the picturÿ°dONLNd•ææ 9)Mes on the Macintosh display¸ °dONLNd¿æ8 Ô)z), you will need to understand how to use °dONLNdÈÀl◊å(‘lQuickTfi‡°dONLNdÔÀå◊Ô) ime, the Image Comprı °dONLNdÀÔ◊4)cession Managerº†°dONLNdÀ4◊‹)E%, and QuickDraw in your application. º¿°dONLNd6À‹◊‚)®Y}@°dONLNd7À‚◊Ô)ou ˇˇÖx.°dONLNd:ÿl‰(·l!should also be familiar with the ˇ˛êh†–°dONLNd[ÿ‰T)îImageAttributeˇˇÖx†–°dONLNdiÿT‰y)T     data stró¿°dONLNdrÿy‰è)%ucturj °dONLNdwÿè‰Õ)e described on ˙à°dONLNdÜÿÕ‰‰)>page ˙à°dONLNdãÿ‰Û)4-5˙à°dONLNdéÿÛ‰˜). .°dONLNdêÂlÒ (ÓlRefer to Chapter 3 of Ú °dONLNd¶ Ò3)^Inside Macintosh: QuickT°dONLNdæÂ4ÒB)jimeu °dONLNd¡ÂBÒ’)! for information about the Image °dONLNd‚Úl˛ã(˚lCompr߆°dONLNdÁÚã˛–)ession Managero °dONLNdıÚ–˛’)E. °dONLNd¯lå(lQuickTÄİdONLNd˛å⁄) ake 100 images arp`°dONLNd⁄K)Ne converted into display-r@†°dONLNd)L£)ready PICT format fi¥ °dONLNd<£œ)W les by the °dONLNdGlå(lQuickTÄİdONLNdMå–) ake 100 QuickT8 °dONLNd[–
  2454. )D ime decompr§`°dONLNdf
  2455. Ñ):essor and the Image ComprÕİdONLNdÑÒ)zession Manager without °dONLNdñl*û('lFyour application having to call any of the IPM functions described in ≤‡°dONLNd‹û*Œ('û Chapter 4, °dONLNdÁ+l7≈(4l“Displaying QuickT•†°dONLNd˘+ƒ7&)Xake 100 Images in a Ws¿°dONLNd    +&7I)bindows t`°dONLNd    +I7Ñ)#Application.”rİdONLNd    "+Ö7Ÿ)< Converted QuickT[ °dONLNd    3+Ÿ7Í)Take °dONLNd    78lD®(Al100 images aró °dONLNd    D8®D€)<Ce shown on the Macintosh display using the same techniques used to °dONLNd    áElQÆ(Nldisplay PICT fiÁ`°dONLNd    ñEÆQÙ)Bles with QuickTà`°dONLNd    •EÙQF)Fime or QuickDraw] °dONLNd    µEFQK)R. ˇ¯Ï@ˇ ˇˇˇˇ@
  2456. ˇ·ˇ‚7^, Palatino    3,. Ã+ä#    APPENDIX ä¨)sA
  2457. 4⁄ä˙,     Helvetica(‡ä Serial Port
  2458. d‡(‡A-1
  2459. vH£4vH£ ûHû
  2460. ˇ·ˇ‚7^ˇˇ¬òˇ◊°dONLNd\äu◊(näQuickT›ê°dONLNd\’u¬)Kake 100 Serial Interfaceˇˇˇˇˇˇh(nA
  2461. °dONLNd!£äØw(¨ä3This appendix contains information about the QuickT3†°dONLNdT£wØ)Ìake 100 serial interface and °dONLNdq∞亵(πä    connector/İdONLNdz∞µºæ)+>. The serial interface is used by host computers to both contr≠ °dONLNd∏∞æº˙(πæol the QuickTˇ°dONLNd≈∞˘º
  2462. );ake °dONLNd…Ωä…’(Δä100 camera and r≤†°dONLNdŸΩ’…)Ketrieve data frJ °dONLNdËΩ…U)>om the QuickTqİdONLNdıΩT…ú)Aake 100 camera. 
  2463. –HÎ4—HÎ
  2464. ˚H4¸H ˝H˝
  2465. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNdËH˚í(ˆH Serial Portˇˇˇˇˇˇùfi(ˆ    A
  2466. °dONLNd ä˚(äThe serial port on QuickT˘¿°dONLNd- ˙)p?ake 100 is located on the left side of the camera, as shown in °dONLNdlä%¢("äFigurR¿°dONLNdq¢%©)e >°dONLNds©%π)A-1Y °dONLNdvπ%ª).
  2467. GHX4HHX"HH]
  2468. ˇ·ˇ‚7^    °dONLNdx=äH∂(Eä
  2469. Figure A-1°dONLNdÉ=ÃHË)BQuickT@°dONLNdâ=ËHS)ake 100 serial port location
  2470. °dONLNdß“äfi¨(€äBIt is an 8-pin mini-DIN socket with the physical pattern shown in •İdONLNdÈ“¨fiƒ(€¨Figurx@°dONLNdÓ“ƒfiÀ)e cİdONLNd“Àfi€)A-2~†°dONLNdÛ“€fi). This is the °dONLNdfläÎ≠(Ëä?same type of serial connector used on most Macintosh computers.
  2471. H4H"H]
  2472. ˇ·ˇ‚7^    °dONLNdAä∂*#
  2473. Figure A-2°dONLNdLÃË)BQuickT@°dONLNdRËs)$ake 100 serial port physical pattern
  2474. ^ÇH4`}Cˇˇˇˇˇˇ(fFigure `)A-0(oListing Ç¿)A-0(xT)able P)A-0
  2475. Zá∫Ï4YÜZáò@@¯@¯Záö¡¡¡˚ˇ‡  ˝ˇ˛?˛À ˝˝ˇ‡Õ ˝¸˚?¸Œ˛˙ˇÄ– ˛˛¯ˇÄ— ˛˛¯ˇ—˛>ˇ˘ˇ“˛|ˇÄ˙˛”˛˛?ˇÄ˙‡‘‡˝
  2476. ˇ¿ˇ0‘¿¸    ˇ‡Ä‘˚    ˇø˛‘>˘ˇÛˇ¿‘|¯¸¯ ‘˜˛ˇ‘‡ıˇˇì‘ ˛Û‘ FÛÄ’ |Û7Ä’
  2477. 6Ò'Ä’
  2478. lÒ'Ä’
  2479. ÿÒ&Ä’
  2480. ∞ÒfÄ’
  2481. `ÒFÄ’
  2482. @ÒFÄ’
  2483.  ¿ÒOÄ’     ü‡ÚÕ¿’ 0?¯Û臒ˇıæ ’˛ˇ‡˜` ’2¸?¯¯@ ’"˚ˇ˘@`’"˙ˇ‡˚@`’"¯?¯¸@`’:˜ˇ˝ @`’>ˆˇ‡@`’Ù?¯¯@‡’ Ûˇ0@†’
  2484. Ò @†’
  2485. Ò`@†’
  2486. Ò@@†’ ¸Ú@@†’ˇˇÄ¯¿@†’ˇÄˇ‡˘Ä@†’˛ˇ„Ŏ¯˙Ä@†’˝?•·è˛˚Ä@†’˝-Á‡{˝Ä@†’˝iÁ∞–˝@‡’˝IØˇ˝@¿’˝ÅhÔˇ~˝@¿’˝Å(˜ˇÛˇ@¿’˝Ũ˜ˇˇÄ@¿’IJħۇ˛ˇ˛@¿’‡˛ˇÄ9–˝@Ä’>˛ü˛flˇˇê˝pÄ’ ˇÄˇˇflˇ˝Ä’ `ˇ‡ˇ¿Û˝Ä’ 0?¯˝0‘ ˛˛˝ ‘ ‡ˇÄ¯˝`‘ò@@į@įöá⁄˛?¸˛ˇ‡˚Ä@‘˝ˇ˛?¯˚Ä¿‘¸ˇ¿˛¸ÅÄ‘˙¯ˇÄ˛¡”˘˛˛ˇ‡C”¯ˇ¿?¯~” ˆˇ–” ı¸˛¿”
  2487. ÙˇÄĔڡ˛“¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯⁄á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿¯¿¯áZ¡¡¡¡¡¡¡¡¡¡¡¡ ˛ò8òÀ ˛àÄÀ ˛ ê ˛      ∏⁄–ÄŒ˛    @ ƒ6äc@Œ˛    F@—D$îCÄŒ˛ÄBHK%ÑÕ˛    ¸ 08w>ÉÄŒ¯ÄïÄïÀ¡˛ Ê `–˛ ˝ –˛ ˝@–˛Qå≤Afi:¬Çy£É¶ç◊˝ç¶åõRB(M(§Ñ§⁄k◊˛J'ñÑ(NQBDír"◊˛R¯$P$êZY    œ&Ñ'◊˛ ùg;íê$éìÓ5$t◊˜Ã˜`Ø@Რò‡Ä¿—˛˛êÄ@—˛˛Ä@“˛!<—¡I¥é‚“˛FîRA    πi"KXëM“˛G(° rBãê!N“˛à-,Ç" ÉDî !"ê“˛I˜¡»r9c†1铈ՈՈČ¡˝√¿ 0|‡ ÷˛$¢˚â¸÷˝H≤˛ Ä Ä÷˛à¨8˝Œ2L¢ń苇Qÿ˝GD    Eîí[M @îYI!¶¥Hÿ˝BDÖ(àîN@ARàÇ'8àÿ˝DHäm$%@Å(¶“B¯@êÿ˛ò0,s…8:Œ á«<ìÅg9`ÿ˚ ˚ ¸◊˚ ˘¸◊˚p˘¸Äÿ¡¡¡¡¡ò@@¯@¯Záö¡¡¡¡¡¡¡¡˝@ Ë¸–˝¿`¸–˛ @@–˛ GûB¥fikÖ†    „—˛BIM[I)¿§Ä“˛ ‰QéRQQÄH—˛$í–h§“ñ!iÄ“˛ ˚,éá$¨˙:F “˝ ˝ œ ˝ ˝ Ã ˝p˝pá ˛‡ ‡À ˛ ÄÀ ˛      ˛º(Ñ÷ÄÕ ˝â”Z
  2488. cÃ˛Q)ú
  2489. "BÃ˛S≠| 'ÑÃ˛ çH≥ú;öÑá¡¡¡ ˛“¸ Õ ˝∂¸Õ˛$@Õ˛$—˛çÁhÕ˛$RSH∞Õ˛H°"P†Õ˛m,§'ë@Õ˛I˜$é@xºÕ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įöá⁄¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯⁄á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿Ú¯¿Ú¯áL¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@¯@¯Záö¡¡¡˚ˇ‡  ˝ˇ˛?˛À ˝˝ˇ‡Õ ˝¸˚?¸Œ˛˙ˇÄ– ˛˛¯ˇÄ— ˛˛¯ˇ—˛>ˇ˘ˇ“˛|ˇÄ˙˛”˛˛?ˇÄ˙‡‘‡˝
  2490. ˇ¿ˇ0‘¿¸    ˇ‡Ä‘˚    ˇø˛‘>˘ˇÛˇ¿‘|¯¸¯ ‘˜˛ˇ‘‡ıˇˇì‘ ˛Û‘ FÛÄ’ |Û7Ä’
  2491. 6Ò'Ä’
  2492. lÒ'Ä’
  2493. ÿÒ&Ä’
  2494. ∞ÒfÄ’
  2495. `ÒFÄ’
  2496. @ÒFÄ’
  2497.  ¿ÒOÄ’     ü‡ÚÕ¿’ 0?¯Û臒ˇıæ ’˛ˇ‡˜` ’2¸?¯¯@ ’"˚ˇ˘@`’"˙ˇ‡˚@`’"¯?¯¸@`’:˜ˇ˝ @`’>ˆˇ‡@`’Ù?¯¯@‡’ Ûˇ0@†’
  2498. Ò @†’
  2499. Ò`@†’
  2500. Ò@@†’ ¸Ú@@†’ˇˇÄ¯¿@†’ˇÄˇ‡˘Ä@†’˛ˇ„ˇ¯˙Ä@†’˝?·è˛˚Ä@†’˝Á‡{˝Ä@†’˝Á∞–˝@‡’˝Øˇ˝@¿’˝ÄÔˇ~˝@¿’˝ĘˇÛˇ@¿’˝ĘˇˇÄ@¿’IJÄÛ‡˛ˇ˛@¿’‡˛ˇÄ9–˝@Ä’>˛ü˛flˇˇê˝pÄ’ ˇÄˇˇflˇ˝Ä’ `ˇ‡ˇ¿Û˝Ä’ 0?¯˝0‘ ˛˛˝ ‘ ‡ˇÄ¯˝`‘ò@@į@įöá⁄˛?¸˛ˇ‡˚Ä@‘˝ˇ˛?¯˚Ä¿‘¸ˇ¿˛¸ÅÄ‘˙¯ˇÄ˛¡”˘˛˛ˇ‡C”¯ˇ¿?¯~” ˆˇ–” ı¸˛¿”
  2501. ÙˇÄĔڡ˛“¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯⁄á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿¯¿¯áZ¡¡¡¡¡¡¡¡¡¡¡¡ ˛ò8òÀ ˛àÄÀ ˛ ê ˛      ∏⁄–ÄŒ˛    @ ƒ6äc@Œ˛    F@—D$îCÄŒ˛ÄBHK%ÑÕ˛    ¸ 08w>ÉÄŒ¯ÄïÄïÀ¡˛ Ê `–˛ ˝ –˛ ˝@–˛Qå≤Afi:¬Çy£É¶ç◊˝ç¶åõRB(M(§Ñ§⁄k◊˛J'ñÑ(NQBDír"◊˛R¯$P$êZY    œ&Ñ'◊˛ ùg;íê$éìÓ5$t◊˜Ã˜`Ø@Რò‡Ä¿—˛˛êÄ@—˛˛Ä@“˛!<—¡I¥é‚“˛FîRA    πi"KXëM“˛G(° rBãê!N“˛à-,Ç" ÉDî !"ê“˛I˜¡»r9c†1铈ՈՈČ¡˝√¿ 0|‡ ÷˛$¢˚â¸÷˝H≤˛ Ä Ä÷˛à¨8˝Œ2L¢ń苇Qÿ˝GD    Eîí[M @îYI!¶¥Hÿ˝BDÖ(àîN@ARàÇ'8àÿ˝DHäm$%@Å(¶“B¯@êÿ˛ò0,s…8:Œ á«<ìÅg9`ÿ˚ ˚ ¸◊˚ ˘¸◊˚p˘¸Äÿ¡¡¡¡¡ò@@¯@¯Záö¡¡¡¡¡¡¡¡˝@ Ë¸–˝¿`¸–˛ @@–˛ GûB¥fikÖ†    „—˛BIM[I)¿§Ä“˛ ‰QéRQQÄH—˛$í–h§“ñ!iÄ“˛ ˚,éá$¨˙:F “˝ ˝ œ ˝ ˝ Ã ˝p˝pá ˛‡ ‡À ˛ ÄÀ ˛      ˛º(Ñ÷ÄÕ ˝â”Z
  2502. cÃ˛Q)ú
  2503. "BÃ˛S≠| 'ÑÃ˛ çH≥ú;öÑá¡¡¡ ˛“¸ Õ ˝∂¸Õ˛$@Õ˛$—˛çÁhÕ˛$RSH∞Õ˛H°"P†Õ˛m,§'ë@Õ˛I˜$é@xºÕ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įöá⁄¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯⁄á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿Ú¯¿Ú¯áL¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@¯@¯Láå¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įåáá¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯Ãá ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿¯¿¯ áL¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@¯@¯Láå¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įåáá¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯Ãá ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿Ú¯¿Ú¯ á>¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@¯@¯Láå¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įåáá¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯Ãá ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿¯¿¯ áL¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@¯@¯Láå¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įåáá¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯Ãá ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿Ú¯¿Ú¯ á>¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡
  2504. àï÷4áàò@@¯@¯à_Ä¡¡¸«¸Ä»¸¿»¸ˇ‡»˝ˇ»˝ˇˇ»˝˛ˇ‡…
  2505. ˛˛ˇ¸…
  2506. ˛?˝ˇÄ ˛¸ˇ‡ 
  2507. ¸ˇ 
  2508. ¸ˇ¯ 
  2509. ¸ˇ˛ ˚ˇ 
  2510. ˚ˇÄÀ    ˙ˇ‡À    ˙ˇÀ    ˙ˇ¯À    ˙ˇ¸À    ˙ˇ˛À    ˙ˇ˛À˘ˇÀ    ?˘ˇÄà   ?˘ˇÄà   ˘ˇ¿Ã¯ˇ¿Ã¯ˇ‡Ã¯ˇïˇïˇ¯Ã¯ˇ¯Ã¯ˇ¸Ã¯ˇ¸Ã¯ˇ¸Ã¯ˇ¸Ã¯ˇ˛Ã¯ˇ˛Ã¯ˇ˛Ã¯ˇ˛Ã¯ˇ˛Ã˜ˇÃ˜ˇÃ˜ˇÃ˜ˇÃ?˜ˇÃ?˜ˇÃ?˜ˇÄÕ?˜ˇÄÕ?˜ˇÄÕ?˜ˇÃ?˜ˇÃ?˜ˇÃ˜ˇÃ˜ˇÃ˜ˇÃ˜ˇÃ˜ˇÃ¯ˇ˛Ã¯ˇ˛Ã¯ˇ˛Ã¯ˇ¸Ã¯ˇ¸Ãò@@į@į_àüįˇ¸Ã¯ˇ¯Ã¯ˇ¯Ã¯ˇïˇïˇ‡Ã¯ˇ¿Ã    ˘ˇ¿Ã    ?˘ˇÄÃ?˘ˇÀ˘ˇÀ    ˙ˇ˛À    ˙ˇ¸À    ˙ˇ¸À    ˙ˇ¯À    ˙ˇÀ    ˙ˇ‡À
  2511. ˚ˇ¿À˚ˇ 
  2512. ¸ˇ˛ 
  2513. ¸ˇ¯ 
  2514. ¸ˇ 
  2515. ˛˝ˇ¿ 
  2516. ˛?˝ˇÄ 
  2517. ˛˛ˇ˛…
  2518. ˛˛ˇ¯…    ˝ˇˇ¿…˝ˇ¸»¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Äú¯Äú¯üàªÄ˝Á›¿Äê˛1¿Ê@⁄˝bàÅê
  2519.  Å) ⁄˝RÂá^Q∏¥iJ¡Ô¢@Å! ⁄˝ïdâhRH‘äKBr"Å&⁄˝ï§âH
  2520.  
  2521. ”»îåJBb!⁄˝ï- JT»ïäZB‚£!)⁄˛ÕˆL;ªÅ˚pÊÈoÉc!„É·Œ ⁄˜˛Ä˙ ⁄ˆÄÄ˙@⁄ÛÄ“¡¡˝¯~˝›˚˜Œ˝H$Hàë"Œ˝H˘)ÅBÖ
  2522. Œ˝˘)2ÅÉ Œ˝âI#Ö
  2523.  
  2524. (Œ˝äãbHë"DŒ˛    ÃÕ£é˝˚ª˜ÓŒ˝ «˝ «˝¿«¡Î ⁄˝> sÄ @  ⁄˝ îÄ  4Ä@ ⁄˝Ol¬ŸîÖ˚\sP㈣Ï⁄˝=ìµA–© Û§Lï ëH§¥⁄òů@¯HH¶‘x#ïIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  2525. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@¯à_Ä'ÅÅÅâÅÅÅâ ÷¸ˇÅÅÅπÿ˛ˇ˛ˇˇÅÅÅ∫ÿˇ˚ˇˇÅÅŪŸˇˇ˙ˇˇÅÅź€˛ˇ¯ˇˇÅÅÅΩfi˝ˇı¸ˇÅÅÅ¡·˝ˇÓ˝ˇÅÅщ˝ˇË˝ˇÅÅÅ«Á˝ˇ‚˝ˇÅÅÅ È˛ˇ‹˛ˇÅÅÅÃ͡ˇı˝ˇ˘¸ˇıˇˇÅÅÅÕ"Ï˛ˇ˜˝ˇˇˇ˙ˇ˛˝ˇ˜ˇˇÅÅÅŒ"Ìˇˇ¯˝ˇ˚ˇ˚ˇˇ˚˝ˇ˘˛ˇÅÅÅ–"Óˇˇ˙˝ˇ¯˝ˇ˛ˇ˜˝ˇ˙ˇˇÅÅÅ—˛ˇ˚˛ˇÚ˛ˇÚ˛ˇ˚ˇˇÅÅÅ“Òˇˇ˙ˇˇ‹ˇˇ˚˛ˇÅÅÅ‘Úˇˇ˙ˇˇ⁄ˇˇ˙ˇˇÅÅÅ’Ûˇˇ˚˛ˇÿˇˇ˙ˇˇÅÅÅ÷Ùˇˇ˚ˇˇ’˛ˇ˚ˇˇÅÅÅ◊ıˇˇ˚ˇˇ“ˇˇ˚ˇˇÅÅÅÿˆˇˇ˚ˇˇ–ˇˇ˚ˇÅÅÅÿ(ˆˇ¸˛ˇ˚ˇˇÒ˛ˇÒˇˇ˚ˇˇ¸ˇˇÅÅÅŸ,˜ˇˇ˝ˇˇ¸˘ˇˆ˛ˇ˛ˇˆ˙ˇ¸ˇˇ¸ˇˇÅÅÅ⁄2˜ˇ¸ˇ˝˛ˇ˚ˇˇ˘˛ˇ¸˛ˇ˙˛ˇ¸˛ˇ˝ˇˇ¸ˇÅÅÅ⁄6¯ˇˇ˝ˇˇ˝ˇ¯ˇˇ˚ˇˇ¯ˇ˙ˇ¯ˇˇ˝ˇ¸ˇˇÅÅÅ€4˘ˇˇ¸ˇ¸ˇ˜ˇ˚ˇ˜ˇˇ¸ˇˇ˜ˇ˝ˇˇ¸ˇÅÅÅ€C˘ˇ¸ˇˇ˝ˇˇ˝ˇˇ˝ˇˇ¸ˇ˝˝ˇ˛ˇ¸ˇ¸ˇˇ˝ˇ¸ˇˇ˝ˇˇÅÅÅ‹A˙ˇˇ˝ˇˇ¸ˇ˙ˇ˝ˇ˝ˇˇ˙˛˛ˇ¸ˇ˝ˇ˚ˇˇ¸ˇ¸ˇˇÅÅÅ›?˙ˇ¸ˇ˚ˇ˙ˇ˝ˇ˝ˇ˙ˇ˝ˇˇ˛ˇˇ˝˛ˇ¸ˇ¸ˇˇ¸ˇÅÅÅ›F˚ˇˇ˝ˇˇ˚ˇ¸ˇˇ¸ˇ˝ˇ˙ˇ˝ˇˇ˛ˇˇ˝ˇˇ˝ˇ˚ˇˇ˝ˇˇÅÅÅfiD¸ˇˇ¸ˇ˙ˇˇ˚ˇ˛ˇˇ˝ˇˇ¸˛¸ˇ¸ˇ˝ˇ˛˛ˇˇ˙ˇ¸ˇÅÅÅfiC¸ˇ¸ˇˇ˘ˇ˝ˇˇ˝ˇ˚ˇ¸ˇ˝ˇˇ¸ˇˇ˝ˇˇ˝ˇ˘ˇˇ˝ˇˇÅÅÅfl3¸ˇ˝ˇˇ¯ˇ˜ˇ˚ˇˇ¯ˇ˙ˇ¯ˇˇ¯ˇ¸ˇÅÅÅfl4¸ˇ˝ˇ˜˛ˇ˚˛ˇ˙ˇˇ˙ˇˇ˙˛ˇ˚ˇˇ˜ˇˇ˝ˇÅÅÅfl3˝ˇˇ˝ˇı˛ˇ˛ˇ˜˝ˇ˝ˇ˜˛ˇ˛ˇıˇ˝ˇÅÅÅfl%˝ˇ¸ˇÛ˝ˇÚ˛ˇÚ˝ˇÛˇ˝ˇˇÅÅŇ˝ˇ˝ˇˇºˇ¸ˇÅÅŇ˝ˇ˝ˇªˇˇ˝ˇÅÅŇ˝ˇ˝ˇ∫ˇ˝ˇÅÅҲˇˇ˝ˇ∫ˇ˝ˇÅÅҲˇ¸ˇ∫ˇ˝ˇˇÅÅÅ·%˛ˇ˝ˇˇ¸¸ˇ·¸ˇÛ˝ˇ˚ˇ¸ˇÅÅÅ·1˛ˇ˝ˇ˝˛ˇ˛˛ˇÂ˛ˇ˛˛ˇ¯˝ˇ˛ˇ˝ˇ¸ˇÅÅÅ·7˛ˇ˝ˇ˛ˇˇ˙ˇˇÁˇˇ˙ˇˇ˙ˇˇ˙ˇˇ˛ˇˇ˝ˇÅÅÅ·4ˇˇ˝ˇ˛ˇ¯ˇˇÈˇˇ¯ˇ˙ˇ¯ˇˇ˛ˇ˝ˇÅÅÅ·2ˇ¸ˇˇˇ˜ˇÈˇ˜ˇˇ¸ˇˇ˜ˇ˛ˇ˝ˇÅÅÅ·Aˇ¸ˇˇ˝ˇ˚ˇˇÎˇˇ˚ˇ˝ˇ¸ˇ˝ˇˇ˛ˇˇˇ˝ˇˇÅÅÅ‚=ˇ¸ˇˇˇ˝˛ˇ¸ˇÎˇ˚ˇˇ˝ˇˇ˛ˇˇ˙ˇ˝ˇˇ¸ˇÅÅÅ‚?ˇ¸ˇˇˇ˙ˇ˝ˇÎˇ¸˛ˇ˝ˇˇ˛ˇˇ˚˛¸ˇˇ˝ˇˇÅÅÅ‚=ˇ¸ˇˇ˙ˇ˛ˇˇÎˇˇ˝˛ˇ˝ˇ¸ˇ˙ˇ˛ˇˇˇ˝ˇÅÅÅ·Aˇ¸ˇˇ˝ˇˇ˛ˇÈˇ˚ˇ˝ˇ¸ˇ˝ˇˇ˛ˇ˛ˇ˝ˇÅÅÅ·Bˇˇ˝ˇˇˇ˝ˇˇ˝ˇÈˇˇ¸˛˛ˇˇ¸ˇˇ˝ˇˇ˝ˇˇˇ˝ˇÅÅÅ·1˛ˇ˝ˇ˛ˇ¯ˇˇËˇ¯ˇ˙ˇ¯ˇˇˇ¸ˇÅÅÅ·1˛ˇ˝ˇˇ˛ˇ¸˛ˇÁ˛ˇ¸˛ˇ˙˝ˇ˝˛ˇ˛ˇ¸ˇÅÅÅ·$˛ˇ¸ˇ˝˙ˇ„˙ˇı˚ˇ¸ˇ¸ˇÅÅÅ·%˛ˇ¸ˇ˙ˇ›ˇˇˇ˙ˇ¸ˇÅÅÅ·˛ˇ¸ˇ∫ˇ˝ˇˇÅÅÅ·˛ˇˇ˝ˇ∫ˇ˝ˇÅÅŇ˝ˇ˝ˇˇºˇˇ˝ˇÅÅŇ˝ˇ¸ˇºˇ˝ˇˇÅÅŇ#˝ˇˇ˝ˇˇÍˇÓˇÍˇˇ˝ˇÅÅÅfl ¸ˇ¸ˇÌ˚ˇÛ˚ˇÏˇ¸ˇÅÅÅflòů@įHH¶‘t#ñIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  2526. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@į_àüÄ'+¸ˇ¸ˇˇ˛ˇ˝˝ˇ¯˛ˇ˝˝ˇˇˇ˝ˇˇÅÅÅfl+¸ˇˇ¸ˇÒˇˇ¯ˇ˘ˇˇ¯ˇˇ¸ˇÅÅÅfi,˚ˇ¸ˇÒˇ˜ˇˇ˙ˇ˜ˇˇÚˇˇ˝ˇˇÅÅÅfi3˚ˇˇ˝ˇˇÚˇ¸ˇˇ˝ˇ˙ˇ˚ˇ˝ˇÚˇ¸ˇÅÅÅ›@˙ˇˇ˝ˇˇˇ˜ˇˇ˝ˇ˛˛ˇ˚ˇˇ¸ˇˇ˝ˇ˜˛ˇˇˇ˝ˇˇÅÅÅ›7˘ˇ˝˙ˇ˘ˇ˘ˇ˛ˇˇ¸ˇ˙ˇ˝ˇˇ˙˛ˇ˛ˇ˝ˇˇÅÅÅ‹5˘ˇˇ¯ˇˇ˙ˇ˙ˇ˝ˇˇ¸ˇ˙ˇ˝ˇˇ˚ˇˇ˜ˇÅÅÅ€5¯ˇˇ¯ˇˇ˚ˇˇ¸˛¸ˇ˚ˇˇ˚ˇ˝ˇ˙ˇ˜ˇˇÅÅÅ€3˜ˇ˜ˇ˙ˇ˝ˇ¸ˇˇ˙ˇ˚ˇ˛ˇˇ˙ˇ¯ˇˇÅÅÅ⁄-˜ˇˇ¯ˇˇ˚ˇˇ¯ˇ˘ˇˇ¯ˇ˙ˇˇ¯ˇÅÅÅŸ/ˆˇˇ˘ˇ˘ˇˇ˙ˇˇ¯ˇˇ˙ˇˇ˙ˇˇ˘ˇˇÅÅÅŸ)ıˇ˘ˇ¯˛ˇ˛˛ˇˆ˛ˇ˛˛ˇ¯ˇ˙ˇˇÅÅÅÿ"ıˇˇ˚ˇˇˆ¸ˇÚ¸ˇˆˇ˙ˇÅÅÅ◊Ùˇˇ¸˛ˇ‘ˇˇ˚ˇˇÅÅÅ◊Ûˇ˙ˇˇ◊˛ˇ˚ˇˇÅÅÅ÷Û˛ˇ˚˛ˇ⁄ˇˇ˙ˇˇÅÅÅ’Òˇˇ˙˛ˇfi˛ˇ˙ˇˇÅÅÅ‘˛ˇ˙ˇˇ·˛ˇ˙˛ˇÅÅŔӎˇ˙˛ˇ‰ˇˇ˘ˇˇÅÅÅ—Ì˛ˇ˙˛ˇË˛ˇ˙˛ˇÅÅÅ–Îˇˇ˘˚ˇÛ˙ˇ˘ˇˇÅÅÅŒͲˇˆ˙ˇ˛˚ˇı˛ˇÅÅÅÕˡˇÒ¸ˇÒˇˇÅÅÅÀÁ˛ˇ‡˛ˇÅÅÅ ²ˇ‰˛ˇÅÅÅ»„˝ˇÍ˝ˇÅÅÅΔ‡¸ˇÚ¸ˇÅÅÅ√ ‹ˇÅÅÅøÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòůÄú¯HH¶‘x#óIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  2527. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêêÄú¯üàªÄ'`·ˇ˛ˇ˛ˇˇÌˇ˚ˇˇ˛ˇˇ˛ˇˇ˛ˇˇ˛˚ˇ˙ˇˇ˛˚ˇËˇ¯ˇ˛˛ˇ˛ˇ˛ˇˇ˛ˇˇ˛˚    ˇ˛ˇ˛ˇ˛ÅÅÀW‡ˇˇ˛ˇÏˇ˙ˇ˛ˇ˛ˇ˛ˇ˚ˇ˘ˇˇÈˇËˇ˘ˇ˝ˇˇ˛ˇ¸ˇ˚ ˇˇˇˇˇÅÅÃà‡ˇˇˇ˛ˇˇˇˇ˝˛ˇˇ˝ˇ˚ˇˇ¸ˇˇ˙ˇ˙ˇˇˇ˛ˇˇ˛ˇ˛ˇˇˇˇ˛ˇˇˇˇˇˇˇˇˇ¸˝ˇ¸ˇˇ˛ˇ˙ˇˇ˚ˇ˚ˇˇ˝ˇˇÅÅÃè·ˇ˛ˇ˛ˇˇˇˇ˛ˇ˛ˇˇˇ˘ˇˇ˚ˇˇ˙ˇ˙ˇˇ˛ˇˇˇ˛ˇˇ˛ˇˇ˛ˇˇˇˇˇ˛ˇ˝ˇˇˇ˛ˇ˛ˇ˛ˇ˘˛ˇ˚˛˙˛ˇˇˇ˝˛ÅÅÕä·ˇˇˇˇˇˇˇˇ˛ˇˇˇˇ˙ˇˇ¸ˇˇ˙ˇ˙˝ˇˇ˝ˇˇ˛ˇˇˇˇ˛ˇˇ˛ˇˇˇˇ˝ˇˇˇ˛ˇ˙ˇ˘ˇ˙ˇ˝˝ˇˇ˝ˇ˛ˇÅÅÕû·ˇˇˇˇˇˇˇˇ˝
  2528. ˇˇˇˇˇˇ˝ˇ˛ˇ˛ˇ˛ˇ˚ˇ˚ˇ˛ ˇˇˇˇˇˇ˛ˇˇˇˇˇ˛ˇˇˇˇˇˇˇ˝ˇ˛ˇ˛ˇˇˇ˛ˇˇ˛ˇ˛ˇ˙ˇˇ˝ˇˇˇˇ˛ˇÅÅÕô‚ˇˇ˛ˇ˛ˇˇ˛ˇˇ˛ˇ¸    ˇ˛ˇ˛ˇ˛˝˛ˇ˛ˇ˛ˇ˛ˇ˚ˇ˝ˇ˛ˇˇ˛˛ˇˇˇ˛ˇˇ˝ˇ˛ˇ˛ˇˇ˛ˇˇˇ˛ˇˇ˛˛ˇ¸ˇˇ˛ˇ˛ˇˇˇ˝ˇˇ˛ˇ˛˛ˇ¸˛ˇ˛ˇ˝ˇˇ˛ˇ˛ˇ˛ˇÅÅÙˇÈˇÏˇΔˇÅÅéˇÍˇÏˇ«ˇÅÅÀëˇÏˇÅÅêÅÅÅâÅÅÅâ=·ˇ˛˛ˇÈ˛ˇˇ˛˛ˇ˛ˇˇ˛˛ˇ ˛ˇˇ˛ˇˇ˛ˇˇ˛˛ˇ˛ˇ˛ˇˇ˛ˇˇÅÅÅÒ;‡ˇˇËˇ˛ˇˇ˛ˇˇ˛ˇ˛ˇ˛ˇˇ˛ˇˇ˛ˇÅÅÅD‡ˇˇ˛¸ˇ ˇˇˇˇˇ˚ˇˇ˝ˇˇ˝ˇˇ¸ˇˇ˝ˇˇ˝ˇˇÅÅÅÔA·˛ˇ˛ˇ˛ˇˇ˛ˇ˛ˇˇ˚˛ˇ¸ˇ˛¸ˇˇ˚ˇˇ¸ˇˇ¸˛ˇÅÅÅÓG·ˇ˛ˇˇˇˇˇˇ˛ˇˇ˚ˇˇ˝ˇˇ˝ˇˇ¸ˇˇ˝ˇˇ˝ˇˇÅÅÅÓN·ˇ˛ˇˇˇ˛ˇˇˇˇˇ˛ˇ˚ˇ˛ˇˇ˛ˇˇ˛ˇ˛ˇ˛ˇˇ˛ˇˇ˛ˇÅÅÅÔQ‚ˇˇ˛ˇ˛ˇ˛ˇ˛ˇˇˇ˛˛ˇ˛ˇ˛ˇˇ˛˛ˇ˛ˇˇ˛˛ˇ˛ˇ˛ˇ˛ˇ˛ˇˇ˛˛ˇ˛ˇˇ˛ˇÅÅÅ⁄ˇˇÅÅÅ¥⁄ˇˇÅÅÅ¥⁄˛ˇˇÅÅÅ≥ÅÅÅâÅÃˇıˇÅÅÃLfl˛ˇ˛ˇÈˇˇ˛ˇˇÒˇ˛˛˛ˇˇ˛ˇ¯ˇÔ˛¸ˇ˛¸ˇˇˇ¯˛ˆ˛˝ˇ˙ˇÅÅÃIfiˇˇÍˇ˛ˇÒˇˇˇˇˇˇ¯ˇÈˇÒˇˇ˝ˇˇˇˇ˘ˇˆˇıˇÅÅÃêfiˇ˛ˇˇ˝ˇ    ˇˇˇˇˇˇ˝ˇ˝ˇ˝ˇˇˇˇ˚
  2529. ˇˇˇˇˇ˝ˇ˚ˇˇˇ¸ˇˇˇ˛ˇ˛˛ˇˇˇ˛ˇˇ˚ˇ˛ˇˇ˝ˇ˛ˇ˚ˇˇˇ˚ˇˇˇˇ˛¸ˇˇˇÅÅœóflˇ˛ˇˇ˛ˇ˛ˇ˛ˇˇ˛ˇ˛ˇ¸˛ˇˇ˛˝ˇˇˇ˛˝ˇˇ˛ˇ˛ˇ˛¸ˇˇˇˇˇ˘ˇˇˇˇˇ˛ˇ˛˝ˇˇ˙ˇˇ˛˛˛˝ˇˇ˛ˇˇ˘ˇˇˇˇˇˇˇ˛ˇÅÅœò@@¯@¯ªà˚Ä˝!%ÄQ0ÑßLñÚ    N•$⁄˝!%V!Ñ©"’¥    RD™%⁄˝q'«õ˘g6#ffl"7élDÛ&⁄ı˙Ä⁄ı˙Ä⁄ı˙Ÿ¡¡˝Δ1åcΔÄÄŒ ‘˛)JRî•)@ă ‘˝!BÑ!Ofèf§¿ß˚‘˝BÑ!BU*왡,•‘˝Ñ!BÑY,ì,Å¡,¶‘˜ëH≥(ÄA,¨‘˝Ñ!BÑ雌ÅÉü7‘ٜٜٜ¡¡˝    Ä‡œ˝    Ä!@œ˝
  2530. *÷å@{kK⁄Äl`–˝
  2531. KZî@ù≠I+¥Ä–˝
  2532. zRò@ô)I2§Ä–˝
  2533. äR∞bô)[b•Ñ–˛ flú‹<È>m∫ʉ–˝˛ Œ ˝˛À ˝˛À¡¡˝
  2534. A@ġĖ˝
  2535. A
  2536. @Ä"@–˝
  2537. )œf
  2538. R?ßÁ† @–˝
  2539. JS™RD…â¿¿Ä–˝    zS,RtââÄ!œ˝    ä”(÷ïã©Å&œ˛ fl}Œ;{fçŒÅ«¿–¡¡¡¡¡˝¯¿ ‡ÄŒ˝D êÄŒ˝    D-e£ê u9œ˝    Ñ5¶§!‡ ñYœ˝    Ñ9$ß! îiœ˝    àÑQ,©!1¥Kœ˛
  2540. èù4ˆC‚‘}œ
  2541. ¯@˛œ
  2542. ¯@˛œÙ œ¡¡¡¡¡¡¡¡¡¡ò@@į@į˚à;Ä¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Äú¯Äú¯;àWÄ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡òů@¯HH¶‘t#òIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  2543. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@¯ªà˚Ä'åflˇ˝ˇ˛ˇˇˇˇˇˇˇ˘ˇˇ˛ˇˇˇ˜ˇ˝ˇˇˇ˝ˇˇˇ˛ˇ˚ˇˇˇˇˇˇˇˇ¸ˇ˘ˇ˝ˇˇ¸ˇˇˇ˛ˇ˚ˇˇˇˇˇˇˇÅÅœûflˇ˝ˇ˛ˇ˛ˇˇˇˇ¸ˇ˛ˇˇˇˇ˛ˇ˝ˇ˛ˇˇ˝ˇˇˇ˝ˇˇˇˇˇˇ˛ˇˇˇˇˇˇˇˇˇˇ¸ˇˇ˙ˇ¸ˇˇ˚ˇˇˇˇˇˇ˛    ˇˇˇˇˇ˛ˇˇˇÅÅ—™‡˛ˇˇ˛ˇ˛
  2544. ˇˇˇˇˇ˛˛ˇ˛˛˛˛ˇˇˇ˛ˇ˛˛ˇˇ˛ˇˇ˛˛˛ˇ˛ˇˇ¸    ˛ˇˇˇˇ˛ˇ˛ˇ˛ˇˇ˛ˇ˛ˇˇ˛ˇˇ˛ˇˇˇ˛ˇ¸ˇ˛ˇ˛ˇˇ˛˛ˇ˛    ˇ˛ˇ˛ˇˇ˛˛˛˛˛ˇ˛ˇˇˇˇˇ˛ˇÅÅ–úˇ√ˇÈˇˇÅÅ úˇ√ˇÈˇˇÅÅ úˇ√ˇÈˇˇ˛ÅÅ…ÅÅÅâÅÅÅâV·ˇ˛˛˛ˇ˛ˇˇ˛ˇˇ˛ˇ˛˛˛ˇ˛ˇˇ˛ˇˇ˛ˇ˛˛˛ˇ¸ˇ˛˛ˇÚˇÌ˛¯ˇˇ˛ˇ˛ˇ˛ˇÅÅúW‚0ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ¸ˇ˛ˇÛˇÌˇ˜ˇˇ˛ˇ˝ˇÅÅúiflˇ˝ˇ˝ˇ˝ˇ˝ˇ˝ˇ˝ˇ˝ˇ˝ˇ˝ˇ¸ˇ˛ˇ˝ˇˇˇˇˇˇ˛˝ˇˇˇˇˇˇˇˇˇˇ˚ˇˇ˘ˇˇˇÅŰn‡ˇ˝ˇ˝˛˝ˇ˝ˇ˝ˇ˝˛˝ˇ˝ˇ˝ˇ¸ˇ˝ ˇ˛ˇ˛ˇˇˇˇ˛ˇ˛ˇˇˇˇˇˇ¸˛˙˛ˇˇˇˇˇˇ˛ÅŰl·ˇ˝ˇ˝ˇ˝ˇ˝ˇ˝ˇ˝ˇ˝ˇ˝ˇ˝ˇ˚ˇ˝ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ˚˛ˇ¸ˇˇˇˇˇˇˇˇÅņD≠ˇ˛ˇˇ˛ˇˇˇ˛ ˇˇˇˇˇˇˇ˛ˇ˘ˇ¸ˇˇˇˇˇˇˇˇÅÅüp·ˇ˝˛˝ˇ˝ˇ˝ˇ˝˛˝ˇ˝ˇ˝ˇ˝˛¸ˇˇ˛ˇˇ˛ˇˇ˛ˇˇ˛ˇ˛ˇˇ˛ˇˇ˛ˇˇ˛ˇ˛ˇˇ˚ˇˇ¸˛ˇˇˇ˛ˇˇˇˇ˛ˇˇÅŰ íˇÅÅÅ˘ íˇÅÅÅ˘ í˛ÅÅÅ˘ÅÅÅâÅÅÅâ"fiˇıˇ˜ˇˇ˛ˇˇÍˇÒˇ˛ˇÅÅÅÙ fiˇıˇ¯ˇ˝ˇÍˇˇÅÅÅÛPflˇˇˇˇˇˇˇˇˇ˛ˇˇ˛ˇ˙˝ˇˇˇˇˇˇˇˇˇˇ˝ˇˇˇˇˇ˘ˇˇˇˇ˛ˇˇÅÅŸS‡ˇˇˇ˛ˇ˛ˇˇˇ˛ˇ˛ˇ˚ˇ˛ˇˇ˛ˇˇˇˇ˛ˇˇ˛ˇˇˇ˛˘ˇˇ˛ˇˇÅÅÅ˙O‡˝ˇˇˇˇˇˇˇˇ˝ˇ˚ˇˇˇˇˇˇˇˇˇˇˇˇˇ¯ˇˇˇˇÅÅÅ˙\·ˇ˛ˇˇˇˇˇˇˇˇ¸ˇˇ˛ˇˇˇˇˇˇˇˇˇˇˇˇˇˇˇ˛ˇ˝ˇ˝ˇˇˇˇˇ˝ˇÅÅŎ_‚ˇˇ˛ˇˇ˛˛ˇ ˇˇ˛ˇ˛ˇˇ˛˝˛ˇ ˛ˇ˛ˇˇˇ˛ˇ ˛ˇ˛ˇˇ˛ˇˇ˛ˇˇ˝ˇ˛ˇˇ˛ˇ˛ˇˇ˛ˇ˛ÅÅŎ€ˇ˝ˇ·ˇÏˇÅÅÅÏ€ˇ˝ˇ·ˇÅÅÅ÷€ˇ˝˛·ˇÅÅÅ÷ÅÅÅâÅÅÅâ0fiˇ¸˛¸ˇˆˇˇ˛ˇ˛ˆ˛˜ˇÚˇ˛¸ˇˇÅÅÅ˙3fiˇ¸ˇ¸ˇıˇˇˇˆˇ˜ˇÛˇˇ˛ˇˇÅÅÅ˚Hflˇˇ˛ˇ˝ˇˇˇˇˇ¸
  2545. ˇˇˇˇˇ˛˙ˇˇ˚ˇ˝ˇˇ˙ˇ˚ˇÅÅÅ˚T‡ˇˇˇˇ˛ˇ˛ˇˇˇˇ˝˛ˇˇ˛ˇˇ˛ ˇˇˇˇ˛ˇ˛ˇ˛ˇˇ˚ˇˇ˚ˇÅÅÅ˙O‡˝ˇˇˇˇˇˇˇˇˇ¸ˇˇˇˇˇ˛ˇˇˇ˛ˇˇˇ˛ˇˇˇ¯ˇ˝ˇÅÅÅ˘T·ˇ˛ˇˇˇˇˇˇˇˇˇ˚ˇˇˇˇˇˇˇˇˇˇˇˇ˛ˇ˛ˇˇˇˇˇ˚ˇˇˇˇÅÅůZ‚
  2546. ˇˇ˛ˇˇ˛ˇˇ˛˛ˇ    ˛ˇˇ˛ˇ˛ˇ˛˛ˇˇˇ˛˛ˇ ˇˇ˛ˇ˛ˇˇ˛ ˇ˛ˇˇ˛ˇ˛ˇˇ˚ˇˇ˛˛˛˛ˇ˛ÅÅÅ˚ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâ-·ˇ˛˛ˇ˘˛˛ˇ˛Òˇ˘ˇ˛ˇˇ˛ˇ¯ˇ˛˛ˇÅÅÅÍ+‡ˇ˛ˇ˘ˇ˛ˇÈˇ˝ˇˇ˙ˇ˝ˇÅÅÅÍM‡ˇ˛ˇ˘ˇ˛ˇˇˇˇˇˇˇˇˇˇ˛ˇˇ˛ˇ˝ˇˇ˚ˇ˚˛ˇˇˇ˛ˇˇÅÅÅ˘L·ˇ˝ˇ˙ˇ˝ˇ˛ˇ˛ˇˇˇˇˇˇˇ˝ˇ˝˛˛ˇ˙ˇ¸ˇ˛ˇˇˇ˛ˇ˛ÅÅÅ˘N·ˇ˝ˇ˙ˇ˝˛ˇˇˇˇˇˇ˛ˇˇ˝ˇ˛ˇ˚ˇ¸ˇˇˇ˛ˇˇˇˇÅÅÅ˘Y·ˇ˛ˇ˛ˇ˝ˇ˛ˇˇ˛ˇˇˇˇˇˇˇˇˇ˝ˇ˛ˇˇ˛ˇˇ˛ˇˇˇˇˇ˛ˇˇˇˇÅÅÅ˘X‚ˇˇ˛ˇˇ˝ˇ˛ˇ˛˛ˇˇˇ˛ˇˇˇ˛ˇ˛ˇˇ˛ˇ˛˝˛ˇ˛ˇ˛ˇ˝
  2547. ˇˇ˛ˇˇ˛ˇ˛˛˛˛ˇ˛ˇÅÅÅ˘∏ˇ‹ˇÅÅÅ˘∏ˇ›ˇÅÅůïˇˇÅÅŘÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòů@įHH¶‘x#ôIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  2548. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@į˚à;Ä'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòůÄú¯HH¶‘t#öIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  2549. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêêÄú¯;àWÄ'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâò@@¯@¯WàóÄ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įóà◊Ä¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Äú¯Äú¯◊àÛÄ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡òů@¯HH¶‘x#õIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  2550. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@¯WàóÄ'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòů@įHH¶‘t#úIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  2551. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@įóà◊Ä'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòůÄú¯HH¶‘x#ùIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  2552. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêêÄú¯◊àÛÄ'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâò@@¯@¯Ûà3Ä¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@į3àsÄ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Äú¯Äú¯sàèÄ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡òů@¯HH¶‘t#ûIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  2553. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@¯Ûà3Ä'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòů@įHH¶‘x#üIJˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  2554. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@į3àsÄ'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòůÄú¯HH¶‘t#†Ä˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  2555. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêêÄú¯sàèÄ'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâò@@¯@¯èàœÄ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įœàÄ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Äú¯Äú¯à+Ä¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡òů@¯HH¶‘x#°Ä˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  2556. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@¯èàœÄ'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòů@įHH¶‘t#¢Ä˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  2557. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêê@įœàÄ'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâòůÄú¯HH¶‘x#£Ä˛ˇˇˇˇˇˇˇˇˇˇÃÃˇˇˇˇôôˇˇˇˇffˇˇˇˇ33ˇˇˇˇˇˇÃÃˇˇˇˇÃÃÃÃˇˇÃÃôô    ˇˇÃÃff
  2558. ˇˇÃÃ33 ˇˇÃà ˇˇôôˇˇˇˇôôÃÃˇˇôôôôˇˇôôffˇˇôô33ˇˇôôˇˇffˇˇˇˇffÃÃˇˇffôôˇˇffffˇˇff33ˇˇffˇˇ33ˇˇˇˇ33ÃÃˇˇ33ôôˇˇ33ffˇˇ3333ˇˇ33ˇˇˇˇˇˇÃàˇˇôô!ˇˇff"ˇˇ33#ˇˇ$ÃÃˇˇˇˇ%ÃÃˇˇÃÃ&ÃÃˇˇôô'ÃÃˇˇff(ÃÃˇˇ33)ÃÃˇˇ*ÃÃÃÃˇˇ+ÃÃÃÃÃÃ,ÃÃÃÃôô-ÃÃÃÃff.ÃÃÃÃ33/ÃÃÃÃ0ÃÃôôˇˇ1ÃÃôôÃÃ2ÃÃôôôô3ÃÃôôff4ÃÃôô335ÃÃôô6ÃÃffˇˇ7ÃÃffÃÃ8ÃÃffôô9ÃÃffff:ÃÃff33;ÃÃff<ÃÃ33ˇˇ=ÃÃ33ÃÃ>ÃÃ33ôô?ÃÃ33ff@ÃÃ3333AÃÃ33BÃÃˇˇCÃÃÃÃDÃÃôôEÃÃffFÃÃ33GÃÃHôôˇˇˇˇIôôˇˇÃÃJôôˇˇôôKôôˇˇffLôôˇˇ33MôôˇˇNôôÃÃˇˇOôôÃÃÃÃPôôÃÃôôQôôÃÃffRôôÃÃ33SôôÃÃTôôôôˇˇUôôôôÃÃVôôôôôôWôôôôffXôôôô33YôôôôZôôffˇˇ[ôôffÃÃ\ôôffôô]ôôffff^ôôff33_ôôff`ôô33ˇˇaôô33ÃÃbôô33ôôcôô33ffdôô3333eôô33fôôˇˇgôôÃÃhôôôôiôôffjôô33kôôlffˇˇˇˇmffˇˇÃÃnffˇˇôôoffˇˇffpffˇˇ33qffˇˇrffÃÃˇˇsffÃÃÃÃtffÃÃôôuffÃÃffvffÃÃ33wffÃÃxffôôˇˇyffôôÃÃzffôôôô{ffôôff|ffôô33}ffôô~ffffˇˇffffÃÃÄffffôôÅffffffÇffff33ÉffffÑff33ˇˇÖff33ÃÃÜff33ôôáff33ffàff3333âff33äffˇˇãffÃÃåffôôçfffféff33èffê33ˇˇˇˇë33ˇˇÃÃí33ˇˇôôì33ˇˇffî33ˇˇ33ï33ˇˇñ33ÃÃˇˇó33ÃÃÃÃò33ÃÃôôô33ÃÃffö33ÃÃ33õ33ÃÃú33ôôˇˇù33ôôÃÃû33ôôôôü33ôôff†33ôô33°33ôô¢33ffˇˇ£33ffÃç33ffôô•33ffff¶33ff33ß33ff®3333ˇˇ©3333ÃÙ3333ôô´3333ff¨333333≠3333Æ33ˇˇØ33ÃÃ∞33ôô±33ff≤3333≥33¥ˇˇˇˇµˇˇÃÃ∂ˇˇôô∑ˇˇff∏ˇˇ33πˇˇ∫ÃÃˇˇªÃÃÃúÃÃôôΩÃÃffæÃÃ33øÃÿôôˇˇ¡ôôÃìôôôô√ôôffƒôô33≈ôôΔffˇˇ«ffÃûffôô…ffff ff33ÀffÃ33ˇˇÕ33ÃÃŒ33ôôœ33ff–3333—33“ˇˇ”ÃÑôô’ff÷33◊ÿˇˇˇŸ˘`˘`˘`⁄Ú–Ú–Ú–€Ï@Ï@Ï@‹Â∞Â∞Â∞›fl fl fl fiÿêÿêÿêfl“““‡ÀpÀpÀp·ƒ‡ƒ‡ƒ‡‚æPæPæP„∑¿∑¿∑¿‰±0±0±0™†™†™†Ê§§§ÁùÄùÄùÄËñññÈê`ê`ê`Íâ–â–â–ÎÉ@É@É@Ï|∞|∞|∞Ìv v v ÓoêoêoêÔiiibpbpbpÒ[‡[‡[‡ÚUPUPUPÛN¿N¿N¿ÙH0H0H0ıA†A†A†ˆ;;;˜4Ä4Ä4į---˘'`'`'`˙ – – –˚@@@¸∞∞∞˝   ˛êêêÄú¯à+Ä'ÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâÅÅÅâˇ∏@ˇ ˇˇˇˇ@
  2559. ˇ·ˇ‚7^
  2560. 4*\¯, Palatino&e.3+l"    APPENDIX ‡Ò)CA,     Helvetica    ˇˇ—ÚˇÆ(@lQuickTÎÏ)ake 100 Serial Interface4⁄*˙¯
  2561. (‡*A-2    )B Serial Port4^*¿¯
  2562. k*r¯4l*r¯ mlm¯
  2563. ˇ·ˇ‚7^ˇˇ‹.ˇ◊°dONLNd\lk•(gl
  2564. Protocol, ¯Ã°dONLNd
  2565. \•k≠)9Tfi°dONLNd \≠kf)ransfer Rate, and Data FormatˇˇˇˇˇˇMR(gÔA
  2566. °dONLNd*rl~†({l
  2567. The QuickTº@°dONLNd4rü~¡)3Aake 100 serial port supports Macintosh GeoPort high-speed serial °dONLNdulãΩ(àlcommunication pr˜†°dONLNdÖΩã¥)Q8otocols up to 920 kilobits per second (Kbps) and standarù °dONLNdΩµãÂ)¯
  2568. d RS-232C °dONLNd«ålòê(ïl    serial prë °dONLNd–åêòI)$,otocols up to 57,600 bits per second (bps). ÄİdONLNd¸åJòL)∫ °dONLNd˛ûl™«(ßlThe GeoPort softwar4‡°dONLNdû»™+)\e built into the QuickTÔ‡°dONLNd(û*™‹)b&ake 100 camera and the GeoPort system °dONLNdN´l∑7(¥l,extension on the Macintosh computer take car◊†°dONLNdz´7∑ù)Àe of setting up the apprn¿°dONLNdí´û∑ø)gopriate °dONLNdö∏lƒΩ(¡lcommunication pr˜†°dONLNd™∏Ωƒå)Q2otocol and transfer rate for a serial connection. °dONLNd‹∏烈)–At system startup time, °dONLNdÙ≈l—≈(Œlthe GeoPort softwarVİdONLNd≈≈—Ê)Y@e performs what is called a beaconing phase. During the GeoPort °dONLNdG“lfi(€l"beaconing phase many device-specifiœ¿°dONLNdj“fi*)§c chor< °dONLNdp“+fi?)es ará¿°dONLNdu“?fi‹)%e attended to; one of these includes °dONLNdöfllΜ(ËlRdetermining the fastest possible data transfer rate that can be supported by both °dONLNdÏÏl¯å*QuickTÄİdONLNdÚÏå¯û) =ake 100 and the Macintosh computer to which it is connected. °dONLNd0˛l
  2569. ¸(lFor computers that support MicrQ¿°dONLNdO˛˝
  2570. )ëosoft W`°dONLNdV˛
  2571. v)"indows, the QuickT@@°dONLNdh˛u
  2572. ·)Vake 100 camera uses the °dONLNdÄ l∏(lRS-232C serial pri¿°dONLNdë ∏Ê)LGotocol with a default transfer rate of 9600 bps and a data format of 8 °dONLNdÿl$ (!l+data bits, with 1 stop bit, and even parityT‡°dONLNd $Y)¥ . The QuickTë °dONLNdX$ú)8ake 100 softwarN†°dONLNdù$Ú)Ee supports transfer °dONLNd2%l1V(.l7rates of 9600, 19,200, 38,400, and 57,600 bps for the WE†°dONLNdi%V1•)Íindows platform. 
  2573. V*]¯4W*]¯ XlX¯
  2574. ˇ·ˇ‚7^ˇˇ‹.ˇ◊°dONLNd{GlVó(RlQuickTpî°dONLNdÅGñV%)*ake 100 Serial Port Pin Xƒ°dONLNdôG%Vs)è AssignmentsˇˇˇˇˇˇMR) A
  2575. °dONLNd¶]li†(fl
  2576. The QuickTº@°dONLNd∞]üiV)3*ake 100 serial port conforms to RS-422 dif≥†°dONLNd⁄]Vib)∑ferñ °dONLNd›]bi≤) ential driver and rœ†°dONLNd]≤i”)Peceiver °dONLNd¯jlvà(slspecifiÓ °dONLNdˇjàva)1cations and has the pin assignments described in Á`°dONLNd0jbvh)⁄T °dONLNd1jhv|)able x`°dONLNd6j|vå)A-1ìİdONLNd9jåvë). 
  2577. ö*¢¯4õ*¢¯ ûlû¯
  2578. ˇ·ˇ‚7^    °dONLNd<êlõî(òl    Table A-1°dONLNdFê™õ)>Serial port pin assignments°dONLNdd®l≥ù(∞l
  2579. Pin number°dONLNdo®Ø≥‰)C Signal name°dONLNd{®¸≥I)MSignal description
  2580. °dONLNdè∂l¬q(øl1°dONLNdë∂Ƭ»)BHSKo°dONLNdñ∂¸¬È)N6Handshake output. This is the clock out signal on the °dONLNdá¸Õ* QuickTÄİdONLNd“¡ÕÌ) .ake 100 camera and is not used by the RS-232C °dONLNdøÿ(’¸standar±Ä°dONLNdÃÿI)! d serial pr^`°dONLNdÃJÿi)-otocol. °dONLNdfilÍq(Ál2°dONLNdfiÆÍ≈)BHSKi°dONLNd#fi¸ÍÅ)NHandshake input. This is the r
  2581. @°dONLNdAfiÇÍ€)Üeset in signal on the °dONLNdWȸı(Ú¸QuickTÄİdONLNd]Èıa) ake 100 camera.°dONLNdn˚lq(l3°dONLNdp˚ÆΔ)BTxD–°dONLNdu˚¸)NT∫¿°dONLNdv˚;)ransmit data.°dONLNdÖlq(l4°dONLNdáÆ≈)BGND°dONLNdã¸#)N    Signal gr≈ °dONLNdî#<)'ound.°dONLNdõl+q((l5°dONLNdùÆ+Δ)BRxD–°dONLNd¢¸+6)NReceive data.°dONLNd±1l=q(:l6°dONLNd≥1Æ=«)BTxD+°dONLNd∏1¸=)NT∫¿°dONLNdπ1=ñ)!ransmit data (not used by standarÁİdONLNd⁄1ñ=¬)ï d serial prî`°dONLNdÂ1√=„)-otocol).°dONLNdÔClOq(Ll7°dONLNdÒCÆOæ)BGPi°dONLNdıC¸O')N    Not used.°dONLNdUlaq(^l8°dONLNdUÆa«)BRxD+°dONLNdU¸aë)N!Receive data (not used by standar∂¿°dONLNd(UëaΩ)ï d serial prc†°dONLNd3Uæafi)-otocol).ˇCj@ˇ ˇˇˇˇ@
  2582. ˇ·ˇ‚7^
  2583. 4H\, Palatino&e.3+ä"    APPENDIX ‡Ò)CA,     Helvetica    ˇˇ—ÚˇÆ(@äQuickTÎÏ)ake 100 Serial Interface4⁄ä˙(‡äSerial Cables
  2584. d‡(‡A-34^H¿
  2585. ^Hx4^Hx
  2586. àHê4âHê äHä
  2587. ˇ·ˇ‚7^ˇˇ©ˇÆ°dONLNduHà§(ÉHSerial Cablesˇˇˇˇˇˇùfi(É    A
  2588. °dONLNdôä•ë(¢äA∫†°dONLNdôë•:)' serial cable for connecting the QuickT°dONLNd7ô:•¯)©)ake 100 camera to Macintosh computers (a °dONLNd`¶ä≤g(Øä0mini-DIN 8 to mini-DIN 8 twisted-pair cable confi¶`°dONLNdë¶g≤)›!guration) and a serial cable for °dONLNd≤≥äøà(ºä8connecting computers that use a D-sub 9-pin connector arN†°dONLNdÍ≥âøö)ˇe pr_`°dONLNdÓ≥öø¯)ovided in the QuickT|@°dONLNd≥˜ø)]ake °dONLNd¿äÃ’(…ä100 package (see ~`°dONLNd¿÷ÃÓ)LFigurQ °dONLNd¿ÓÃı)e <`°dONLNd¿ıÃ)A-3WİdONLNd!¿Ã) and D†°dONLNd&¿Ã3)Figur`°dONLNd+¿3Ã:)e †°dONLNd-¿:ÃJ)A-6¿°dONLNd0¿JÃ).). In addition, a D-sub 9-pin to D-sub 25-pin °dONLNd^ÕäŸ÷(÷äadapter is also pr£‡°dONLNdpÕ÷Ÿ )L ovided (see Õ@°dONLNd|Õ Ÿ#)5Figur†°dONLNdÅÕ#Ÿ*)e ã@°dONLNdÉÕ*Ÿ:)A-6¶`°dONLNdÜÕ:ŸÉ)). This section pr¡`°dONLNdòÕÉŸ)Iovides diagrams that show how °dONLNd∂⁄äÊ(„ä"the pins in those serial cables ar¿°dONLNdÿ⁄Êó)åe connected to make the appr‘¿°dONLNdÙ⁄óÊ)Åopriate serial connection °dONLNdÁäÛ…(äwith a QuickT”†°dONLNdÁ»Û)>ake 100 camera. °dONLNd,˘äê(äTµ¿°dONLNd-˘è]),o connect a Macintosh computer to the QuickTl‡°dONLNdY˘]ƒ)Œake 100 camera, use an F‡°dONLNdp˘ƒ¸)gApple serial °dONLNd}ä(äTcable, part number M0197, or a cable with the pin and signal assignment connections °dONLNd—äµ*    shown in ʰdONLNd⁄µÕ)+Figur∏¿°dONLNdflÕ‘)e §°dONLNd·‘‰)A-4ø °dONLNd‰‰È). 
  2589. AHR4BHR"BH]
  2590. ˇ·ˇ‚7^    °dONLNdÁ7äB∂(?ä
  2591. Figure A-3°dONLNdÚ7ÃBË)BQuickT@°dONLNd¯7ËBn)!ake 100-to-Macintosh serial cable
  2592. ÀH‹4ÃH‹"ÃH]
  2593. ˇ·ˇ‚7^°dONLNd¡äÃ∂(…ä
  2594. Figure A-4°dONLNd&¡ÃÃË)BQuickT@°dONLNd,¡ËÃ≤)1ake 100-to-Macintosh serial cable pin assignments
  2595. °dONLNd_ù䩿(¶ä
  2596. The QuickTº@°dONLNdiùΩ©Ú)3Hake 100-to-Macintosh cable is essentially a twisted-pair cable with the °dONLNd±™ä∂«(≥äphysical confi§Ä°dONLNdø™«∂)=guration shown in Ö°dONLNd—™∂3)TFigurW¿°dONLNd÷™3∂:)e C°dONLNdÿ™:∂J)A-5^ °dONLNd€™J∂O). 
  2597. Qá©÷4OÜPáò@@¯@¯Páê¡¡¡¡¡¡¡¡¡    ¯ˇˇ¯Œ
  2598. ˙˚ˇ¯–
  2599. ˚˘ˇ¿—˚¯ˇ˛—
  2600. ¸˜ˇ‡“
  2601. ¸˜ˇ¯“¸˙ˇÁˇˇ¸“¸ˇˇ¯¸ˇˇÄ”¸ˇ¯˚ˇˇ”˝ˇˇ¿˙ˇ¸”˝ˇ¸˘ˇˇ”˝ˇ¯˘ˇˇ¿‘˝ˇ‡¯ˇ‘˝?ˇ¿¯?ˇ¯‘˝ˇÄ¯ˇ˛‘˝ˇˇ˜˛ˇÄ’˛ˇˇ˜˛?¿’˛˜˛˜ˇ‡’˛Á¸˜ˇ’˛œ¸˜ˇ¯’˛诘ˇ¸’˛˛˜ˇÄ~’¸˜ˇÄ?’¯˜ˇÄÄ÷‡¯˜ˇÄ¿÷¿¸˜ˇÄ¿÷˛˜?ˇÄ‡÷?ˇ˜ˇ‡÷~ˇˇÄ˙ˇˇ÷|¸ˇ‡˝?ˇˇ÷¯Ùˇ÷ıˇ˛¯÷ˆˇ¯x÷?ˆˇ‡~÷ˆˇ¿÷˜ˇ˛˛÷˛¯ˇ˝`◊_˝?˙ˇ¿˝◊ˇ‡¸˛ˇ¿˙–◊ ˇ`¯◊ ˇ‡WË◊ †_¯◊ ˇ∞M¸◊ Á∞Oº◊ ˇ O˛◊ Á g⁄◊ ~`%Û◊ ˙@6ˇ◊ ˛@˝◊ ¿«◊ Ä◊ ÁÄ?◊ ˜ÔÄÿ ˇÔˇÄÿ ¸ÔˇÄÿò@@į@įêá– ¯ÔˇÄÿ
  2602. ¯Óˇ¿ÿ
  2603. Ó¿ÿ
  2604. ‡ÓÄÿ
  2605. ‡Ó~Äÿ    @Ó ◊¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯–á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿¯¿¯áP¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ˛ò8òÀ ˛§ÄÀ ˛ Ñ ˛      Ñ⁄–ÄŒ˛    @ à6äc@Œ˛    F@—$îCÄŒ˛ÄB$K%ÑÕ˛    ¸ x8w>ÉÄŒ¯ÄïÄïÀ¡ ˛ò˝Äà ˛˝!Äà ˛˝!À˛!<—¡ç9Ã˛FîRBR%Ã˛G(°"FÃ˛à-,ÑÁ[ Ã˛I˜"á¡¡¡˛ ò‡Ä¿—˛˛êÄ@—˛˛Ä@“˛!<—¡I¥é‚“˛FîRA    πi"KXëM“˛G(° rBãê!N“˛à-,Ç" ÉDî !"ê“˛I˜¡»r9c†1铈ՈՈČ¡˝√¿ 0‡ ÷˛$¢˚!¸÷˝H≤˛ Ä CÄ÷˛à¨8˝Œ2L¢‡Å„苇Qÿ˝GD    Eîí[M@îYI!¶¥Hÿ˝BDÖ(àîNARàÇ'8àÿ˝DHäm$% Å(¶“B¯@êÿ˛ò0,s…8:Œ ««<ìÅg9`ÿ˚ ˚ ¸◊˚ ˘¸◊ò@@¯@¯Páê˚p˘¸Äÿ¡¡¡¡¡¡¡¡¡¡¡¡¡˝@ Ë¸–˝¿`¸–˛ @@–˛ GûB¥fikÖ†    „—˛BIM[I)¿§Ä“˛ ‰QéRQQÄH—˛$í–h§“ñ!iÄ“˛ ˚,éá$¨˙:F “˝ ˝ œ ˝ ˝ Ã ˝p˝pá ˛‡ ‡À ˛ ÄÀ ˛      ˛º(Ñ÷ÄÕ ˝â”Z
  2606. cÃ˛Q)ú
  2607. "BÃ˛S≠| 'ÑÃ˛ çH≥ú;öÑá¡¡¡ ˛“¸ Õ ˝∂¸Õ˛$@Õ˛$—˛çÁhÕ˛$RSH∞Õ˛H°"P†Õ˛m,§'ë@Õ˛I˜$é@xºÕ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įêá–¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯–á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿Ú¯¿Ú¯áB¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@¯@¯Páê¡¡¡¡¡¡¡¡¡    ¯¸ˇ¯Œ ˙ˇ¸˝–
  2608. ˚˘¿—
  2609. ˚–˘—¸ ġˇˇ¿`“¸f˝ˇÄ “¸ <ˇˇÁ¿`“˚3¯¸Ä”¸@à˚@∞”˝¿˙`D”˝D˘”¸à˘ @‘˝) ¯B‘˝ Ç@¯!‘˝Aį‘˝˜ÄÄ’˛˜ ‘˛
  2610. ˜‘˛  ˜’˝H4˜’˛@à˜Ñ’˛Ç    ˆÄB’    ˜Ä!’ı ÄÄ÷ ˜Ä@÷@ј@Ä‘˝    B˜ Ä ÷˜@”BÄÄ˙÷
  2611. Pˇ‡˝8’àX¿¸?ˇÄA”¸û˛ˇ‡ÄAà÷˛@Ģ” 0˘?IJ~÷0ˇ˚@c÷ĸ?˛˛A÷|˛˘˝A`◊_˝8˚¿˝◊ˇ‡¸˛ˇ¿˙o–◊ ˇ`¯◊ ˇ‡WË◊ †_¯◊ ˇ∞M¸◊ Á∞Oº◊ ˇ O˛◊ Á g⁄◊ ~`%Û◊ ˙@6ˇ◊ ˛@˝◊ ¿«◊ Ä◊ ÁÄ?◊ ˜ÔÄÿ ÔÔÄÿ <ÔÕÄÿò@@į@įêá– ÔáÄÿ
  2612. òÓfl¿ÿ
  2613. Ó~¿ÿ
  2614. `ÓoÄÿ
  2615. ‡Ó~Äÿ    @Ó ◊¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯–á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿¯¿¯áP¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ˛ò8òÀ ˛§ÄÀ ˛ Ñ ˛      Ñ⁄–ÄŒ˛    @ à6äc@Œ˛    F@—$îCÄŒ˛ÄB$K%ÑÕ˛    ¸ x8w>ÉÄŒ¯ÄïÄïÀ¡ ˛ò˝Äà ˛˝!Äà ˛˝!À˛!<—¡ç9Ã˛FîRBR%Ã˛G(°"FÃ˛à-,ÑÁ[ Ã˛I˜"á¡¡¡˛ ò‡Ä¿—˛˛êÄ@—˛˛Ä@“˛!<—¡I¥é‚“˛FîRA    πi"KXëM“˛G(° rBãê!N“˛à-,Ç" ÉDî !"ê“˛I˜¡»r9c†1铈ՈՈČ¡˝√¿ 0‡ ÷˛$¢˚!¸÷˝H≤˛ Ä CÄ÷˛à¨8˝Œ2L¢‡Å„苇Qÿ˝GD    Eîí[M@îYI!¶¥Hÿ˝BDÖ(àîNARàÇ'8àÿ˝DHäm$% Å(¶“B¯@êÿ˛ò0,s…8:Œ ««<ìÅg9`ÿ˚ ˚ ¸◊˚ ˘¸◊ò@@¯@¯Páê˚p˘¸Äÿ¡¡¡¡¡¡¡¡¡¡¡¡¡˝@ Ë¸–˝¿`¸–˛ @@–˛ GûB¥fikÖ†    „—˛BIM[I)¿§Ä“˛ ‰QéRQQÄH—˛$í–h§“ñ!iÄ“˛ ˚,éá$¨˙:F “˝ ˝ œ ˝ ˝ Ã ˝p˝pá ˛‡ ‡À ˛ ÄÀ ˛      ˛º(Ñ÷ÄÕ ˝â”Z
  2616. cÃ˛Q)ú
  2617. "BÃ˛S≠| 'ÑÃ˛ çH≥ú;öÑá¡¡¡ ˛“¸ Õ ˝∂¸Õ˛$@Õ˛$—˛çÁhÕ˛$RSH∞Õ˛H°"P†Õ˛m,§'ë@Õ˛I˜$é@xºÕ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įêá–¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯–á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿Ú¯¿Ú¯áB¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@¯@¯BáÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įÇᬡ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯¬á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿¯¿¯áB¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@¯@¯BáÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įÇᬡ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯¬á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿Ú¯¿Ú¯á4¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@¯@¯BáÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įÇᬡ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯¬á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿¯¿¯áB¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@¯@¯BáÇ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@@į@įÇᬡ¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@Ä¿¯Ä¿¯¬á¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ò@¿Ú¯¿Ú¯á4¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡†Ç°d
  2618. SPNT˰dSPNT –@°d
  2619. SPNT ∏°dSPNT &+_>nˇˇˇˇˇˇˇˇ°d
  2620. SPNT î°ñ 
  2621. €_˛±    .@@°dONLNdˇˇ(˚√1 †ó°d
  2622. SPNT ∏°dSPNT &=_Pnˇˇˇˇˇˇˇˇ°d
  2623. SPNT î°ñ 
  2624. €_±°dONLNdˇˇ*2†ó°d
  2625. SPNT ∏°dSPNT &O_bnˇˇˇˇˇˇˇˇ°d
  2626. SPNT î°ñ 
  2627. €_"±°dONLNdˇˇ*3†ó°d
  2628. SPNT ∏°dSPNT &a_tnˇˇˇˇˇˇˇˇ°d
  2629. SPNT î°ñ 
  2630. €_4±°dONLNdˇˇ*4†ó°d
  2631. SPNT ∏°dSPNT &s_Ünˇˇˇˇˇˇˇˇ°d
  2632. SPNT î°ñ 
  2633. €_F±°dONLNdˇˇ*5†ó°d
  2634. SPNT ∏°dSPNT &Ö_ònˇˇˇˇˇˇˇˇ°d
  2635. SPNT î°ñ 
  2636. €_X±°dONLNdˇˇ*6†ó°d
  2637. SPNT ∏°dSPNT &ó_™nˇˇˇˇˇˇˇˇ°d
  2638. SPNT î°ñ 
  2639. €_j±°dONLNdˇˇ*7†ó°d
  2640. SPNT ∏°dSPNT &©_ºnˇˇˇˇˇˇˇˇ°d
  2641. SPNT î°ñ 
  2642. €_|±°dONLNdˇˇ*8†ó°d
  2643. SPNT ∏°dSPNT &$*tˇˇˇˇˇˇˇˇ°d
  2644. SPNT î°ñ 
  2645. €_ͱ°dONLNdˇˇ(ÁàVenus mini-DIN 8†ó°d
  2646. SPNT ∏°dSPNT &Æ*ˇˇˇˇˇˇˇˇ°d
  2647. SPNT î°ñ °dONLNdˇˇ)äMacintosh mini-DIN 8†ó°d
  2648. SPNT ∏°dSPNT &<≠OÏˇˇˇˇˇˇˇˇ°d
  2649. SPNT î°ñ 
  2650. €_±°dONLNdˇˇ(     1    HSKo†ó°d
  2651. SPNT ∏°dSPNT &+≠>Êˇˇˇˇˇˇˇˇ°d
  2652. SPNT î°ñ 
  2653. €_˛±°dONLNdˇˇ(˚    2    HSKi†ó°d
  2654. SPNT ∏°dSPNT &s≠܉ˇˇˇˇˇˇˇˇ°d
  2655. SPNT î°ñ 
  2656. €_F±°dONLNdˇˇ*H    3    TxD–†ó°d
  2657. SPNT ∏°dSPNT &a≠t¡ˇˇˇˇˇˇˇ°d
  2658. SPNT î°ñ 
  2659. €_4±°dONLNdˇˇ(14    GND†ó°d
  2660. SPNT ∏°dSPNT &N≠aÈˇˇˇˇˇˇˇˇ°d
  2661. SPNT î°ñ 
  2662. €_!±°dONLNdˇˇ(    5    RxD–†ó°d
  2663. SPNT ∏°dSPNT &©≠ºÏˇˇˇˇˇˇˇˇ°d
  2664. SPNT î°ñ 
  2665. €_|±°dONLNdˇˇ*[    6    TxD+†ó°d
  2666. SPNT ∏°dSPNT &ó≠™˜ˇˇˇˇˇˇˇˇ°d
  2667. SPNT î°ñ 
  2668. €_j±°dONLNdˇˇ(g7    Not used†ó°d
  2669. SPNT ∏°dSPNT &Ö≠òÏˇˇˇˇˇˇˇˇ°d
  2670. SPNT î°ñ 
  2671. €_X±°dONLNdˇˇ(U    8    RxD+†ó°d
  2672. SPNT ∏°dSPNT &+$>Xˇˇˇˇˇˇˇˇ°d
  2673. SPNT î°ñ 
  2674. €_˛±°dONLNdˇˇ(˚à    Clock out†ó°d
  2675. SPNT ∏°dSPNT &=$POˇˇˇˇˇˇˇˇ°d
  2676. SPNT î°ñ 
  2677. €_±°dONLNdˇˇ*Reset in†ó°d
  2678. SPNT ∏°dSPNT &O$bCˇˇˇˇˇˇˇˇ°d
  2679. SPNT î°ñ 
  2680. €_"±°dONLNdˇˇ*TxD–†ó°d
  2681. SPNT ∏°dSPNT &a$tAˇˇˇˇˇˇˇˇ°d
  2682. SPNT î°ñ 
  2683. €_4±°dONLNdˇˇ*GND†ó°d
  2684. SPNT ∏°dSPNT &s$ÜDˇˇˇˇˇˇˇˇ°d
  2685. SPNT î°ñ 
  2686. €_F±°dONLNdˇˇ*RxD–†ó°d
  2687. SPNT ∏°dSPNT &Ö$òCˇˇˇˇˇˇˇˇ°d
  2688. SPNT î°ñ 
  2689. €_X±°dONLNdˇˇ*TxD+†ó°d
  2690. SPNT ∏°dSPNT &ó$™Rˇˇˇˇˇˇˇˇ°d
  2691. SPNT î°ñ 
  2692. €_j±°dONLNdˇˇ*Not used†ó°d
  2693. SPNT ∏°dSPNT &©$ºDˇˇˇˇˇˇˇˇ°d
  2694. SPNT î°ñ 
  2695. €_|±°dONLNdˇˇ*RxD+†ó°d"SPNT ÓVˇˇ°d
  2696. SPNT ∏†å
  2697. €_Ö±"˜Õ=QıÀ˘œQı˘ †ç°d"SPNT Ó VBg°d
  2698. SPNT ∏†å"    Õ=QÀ œQ  †ç°d
  2699. SPNT ∏†å"Õ=QÀœQ †ç°d
  2700. SPNT ∏†å"-Õ=Q+À/œQ+/ †ç°d
  2701. SPNT ∏†å"?Õ=Q=ÀAœQ=A †ç°d
  2702. SPNT ∏†å"QÕ=QOÀSœQOS †ç°d
  2703. SPNT ∏†å"uÕ=QsÀwœQsw †ç°dSPNTÈ†Éˇé@ˇ ˇˇˇˇ